Sento Sango - Portfolio

REST API

С REST API работаю с двух сторон. Разработкой backend API занимаюсь примерно с 2015 года, а взаимодействовать со сторонними сервисами начал еще раньше. За это время накопился приличный опыт - и в проектировании собственных API, и в интеграции с чужими.

Спецификация REST оставляет некоторые вопросы открытыми, и разные разработчики могут по-разному понимать, как правильно делать те или иные вещи. Чтобы для себя "разложить по полочкам", читал множество статей на эту тему. В итоге сформировалось понимание, каких принципов стоит придерживаться: правильные HTTP методы и статус-коды, нормальный нейминг эндпоинтов, версионирование, stateless, кеширование.

Про HATEOAS знаю, но на практике большинство компаний его не реализуют (разве что для ссылок пагинации). Думаю, это связано с неоправданной дополнительной сложностью, да и, прямо скажем, с отсутствием очевидных преимуществ в большинстве случаев. Проще обойтись без него.

Где применял

Рабочие проекты

Личные проекты

Open-source пакеты

Написал несколько PHP-клиентов для работы с API разных сервисов:

Документирование

Для документирования API использовал разные инструменты. В ранних проектах (TRM, BTrud) работал с Postman - делал коллекции запросов и документацию там. В более поздних проектах, например в Content Store, перешел на OpenAPI (Swagger) - удобно для автогенерации документации и валидации.

Что еще делал

Со всеми типичными задачами при разработке API сталкивался: аутентификация (токены, OAuth, JWT), пагинация, фильтрация и сортировка, rate limiting, валидация входящих данных, обработка ошибок. В общем, стандартный набор, который нужен в любом нормальном API.