Александр Борисов, 30 января 2015
Создании API не похоже на разработку типичного веб-приложения. В API нет пользовательского интерфейса, но есть интерфейс для взаимодействия программ. Часто из-за этого создание API занимает гораздо больше времени, чем планируется в начале. Хочу поделиться соображениями, которые позволяют тратить меньше времени на разработку API.
В качестве базового протокола для API удобно использовать HTTP по ряду причин:
Архитектура REST делает API простым для изучения и разработки. Неочевидный её плюс – упрощение процедуры инвалидации кэша.
Хороший формат вывода данных в API уменьшает время разработки не только сервера, но и клиентских приложений. Я рекомендую использовать JSON: он занимает мало места, является текстовым (я значит прост в отладке), и для него можно написать клиент прямо в JavaScript-консоли браузера.
С изменениями в API есть одна проблема – их нельзя делать без риска поломать клиенты, которые используют это API. Если ваши клиенты – мобильные приложения, то часть из них обязательно не будет обновляться.
Чтобы изменения не поломали обратную совместимость, можно выпустить новую версию API. Версионирование API на HTTP можно делать с помощью с помощью URL http://example.com/api/v1/friends.json
, или заголовка, в котором клиент указывает нужную версию API.
Самое главное: предусмотрите версионность вашего API заранее. Это не усложнит разработку, зато значительно сэкономит время при запуске новых версий API.
Несмотря на то, что API используют программы, проектируют их использование люди. Даже если ваше API не будет опубликовано, напишите документацию к нему.
Простого описания в гугл-документе может быть достаточно. Для каждого запроса укажите: назначение, способ вызова, пример ответа и список возвращаемых ошибок. Хорошая документация к API описывает его возможности, даёт примеры запросов для «быстрого старта», и описывает общие процедуры – паджинацию, авторизацию, формат вывода данных.
Мысли о веб-разработке на Ruby on Rails: работа с кодом, приёмы, инструменты, организация процесса разработки.
Веб-разработка на Ruby on Rails, реализация сложных проектов
mailbox@cifronomika.ru
+7 (910) 535-99-11