Rest api. barcamp 2013.

Post on 31-May-2015

354 views 2 download

Tags:

description

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

Transcript of Rest api. barcamp 2013.

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

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