Upload
invaders-co
View
354
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Краткий обзор инструментов разработки сервисов и мобильных клиентов к ним
Citation preview
REST API в мобильной разработке
Эдиль КрацкихСултан Иманходжаев
Серверная сторона вопроса
Python http://python.org/
MySQL http://mysql.com/
Nginx http://nginx.org/
uwsgi http://projects.unbit.it/uwsgi/
Python background
Django https://www.djangoproject.com/
Tastypie http://tastypieapi.org/
Django Rest Framework http://django-rest-framework.org/
API versioning & deprecation policy
API documentation tool, API definition step
● Mashape https://www.mashape.com/
● Apiary http://apiary.io/
API documented view
1. Использовать ApiKey для взаимодействия с сервисом,
2. Социальная авторизация (Facebook, Twitter, использовать access_token для получения ApiKey)
3. Tastypie лимиты, кастомные схемы для гибких прав доступа
Безопасность и API
Социальная авторизацияДля авторизации через мобильные клиенты
● можно использовать access_token, полученный при авторизации,
● затем access_token использовать для получения ApiKey для последующего взаимодействия с сервисом,
● можно выполнить стандартный логин через форму и возвращать ApiKey
Использование лимитов в Tastypie
Лимиты позволяют создавать гибкую систему прав доступа к API
REST API на клиенте. Зачем?● Тесная интеграция с ОС● Можно работать в
бэкграунде● Быстрей, чем мобильный
сайт● User Experience● Пользователи всегда
предпочитают приложение сайту
Частые проблемы● Кажущаяся простота● Ограниченные ресурсы
устройств● Хранение результата в памяти
○ Большой расход памяти○ Расход сетевого трафика
● Выполнение запросов в основном потоке
● Выбор формата данных (JSON, XML, binary)
Common workflow
REST request● Подготовка HTTP запроса● Выполнение HTTP запроса● Обработка HTTP ответа
Производительность● Формат данных: binary, JSON, XML● GZIP
Отслеживать состояние запроса
iOS. Основные фреймворки
●○ Легкая и быстрая○ Хорошая модульная структура○ Построена поверх NSOperation
●○ Построена поверх AFNetworking ○ Интеграция с CoreData○ Object Mapping○ CoreData Seeding
Android. Основные фреймворки
● Android Asynchronous Http Client○ Легкая и простая○ Автоматическое конвертироваие
ответа в JSON объект
● Volley○ Легкая быстрая, новая○ Используется Google во всех
своих приложениях○ Умеет отменять запросы
● GSON
Ссылки● AFNetworking http:
//afnetworking.com● RESTKit http://restkit.org
● Volley https://android.googlesource.com/platform/frameworks/volley/
● Android Asynchronous Http Client http://loopj.com/android-async-http/
● GSON http://code.google.com/p/google-gson/
Спасибо!Вопросы?