16
REST API в мобильной разработке Эдиль Крацких Султан Иманходжаев

Rest api. barcamp 2013

Embed Size (px)

DESCRIPTION

Краткий обзор инструментов разработки сервисов и мобильных клиентов к ним

Citation preview

Page 1: Rest api. barcamp 2013

REST API в мобильной разработке

Эдиль КрацкихСултан Иманходжаев

Page 2: Rest api. barcamp 2013

Серверная сторона вопроса

Python http://python.org/

MySQL http://mysql.com/

Nginx http://nginx.org/

uwsgi http://projects.unbit.it/uwsgi/

Page 3: Rest api. barcamp 2013

Python background

Django https://www.djangoproject.com/

Tastypie http://tastypieapi.org/

Django Rest Framework http://django-rest-framework.org/

Page 4: Rest api. barcamp 2013

API versioning & deprecation policy

Page 5: Rest api. barcamp 2013

API documentation tool, API definition step

● Mashape https://www.mashape.com/

● Apiary http://apiary.io/

Page 6: Rest api. barcamp 2013

API documented view

Page 7: Rest api. barcamp 2013

1. Использовать ApiKey для взаимодействия с сервисом,

2. Социальная авторизация (Facebook, Twitter, использовать access_token для получения ApiKey)

3. Tastypie лимиты, кастомные схемы для гибких прав доступа

Безопасность и API

Page 8: Rest api. barcamp 2013

Социальная авторизацияДля авторизации через мобильные клиенты

● можно использовать access_token, полученный при авторизации,

● затем access_token использовать для получения ApiKey для последующего взаимодействия с сервисом,

● можно выполнить стандартный логин через форму и возвращать ApiKey

Page 9: Rest api. barcamp 2013

Использование лимитов в Tastypie

Лимиты позволяют создавать гибкую систему прав доступа к API

Page 10: Rest api. barcamp 2013

REST API на клиенте. Зачем?● Тесная интеграция с ОС● Можно работать в

бэкграунде● Быстрей, чем мобильный

сайт● User Experience● Пользователи всегда

предпочитают приложение сайту

Page 11: Rest api. barcamp 2013

Частые проблемы● Кажущаяся простота● Ограниченные ресурсы

устройств● Хранение результата в памяти

○ Большой расход памяти○ Расход сетевого трафика

● Выполнение запросов в основном потоке

● Выбор формата данных (JSON, XML, binary)

Page 12: Rest api. barcamp 2013

Common workflow

REST request● Подготовка HTTP запроса● Выполнение HTTP запроса● Обработка HTTP ответа

Производительность● Формат данных: binary, JSON, XML● GZIP

Отслеживать состояние запроса

Page 13: Rest api. barcamp 2013

iOS. Основные фреймворки

●○ Легкая и быстрая○ Хорошая модульная структура○ Построена поверх NSOperation

●○ Построена поверх AFNetworking ○ Интеграция с CoreData○ Object Mapping○ CoreData Seeding

Page 14: Rest api. barcamp 2013

Android. Основные фреймворки

● Android Asynchronous Http Client○ Легкая и простая○ Автоматическое конвертироваие

ответа в JSON объект

● Volley○ Легкая быстрая, новая○ Используется Google во всех

своих приложениях○ Умеет отменять запросы

● GSON

Page 16: Rest api. barcamp 2013

Спасибо!Вопросы?