API

Материалы по проектированию API: контракты, REST, версионирование, документация, ошибки, согласованность интерфейсов и практики, которые делают API понятными и устойчивыми в развитии.

Все материалы

Все статьи, заметки и разборы по этой теме в хронологическом порядке.

Webhook vs Callback. Различия и почему их путают

Webhook vs Callback. Различия и почему их путают Каждый раз, когда я объясняю тему асинхронных интеграций, у слушателей возникает один и тот же вопрос: «А в чём разница между webhook и callback, разве это не одно и то же?». Давайте разбираться. Короткий ответ Callback — это общий термин в программировании, обозначающий паттерн «вызову тебя позже». В роли callback может выступать функция (переданная как аргумент) или URL‑адрес, который будет вызван после завершения некоторой операции. Важно: callback бывает синхронным (например, функция обратного вызова в Array.map вызывается сразу) и асинхронным (когда вызов откладывается до окончания длительной задачи). В контексте интеграций и API мы говорим именно об асинхронном callback, обычно реализованном через HTTP‑запрос на указанный URL. ...

29 июля 2026 г. · 6 минут · CrazyElephant_x

История одной команды для преобразования OpenAPI 2 на OpenAPI 3

История одной команды в консоле для преобразования OpenAPI 2 на OpenAPI 3 На работе переходим на контрактное программирование. В рамках задачи нужно было выполнить миграцию с OpenAPI 2 на OpenAPI 3. Я человек простой: надо — значит надо. Сел, скопировал файл, поменял версию, руками поправил все ошибки. Жалкие 2 дня и всё готово. Проходит время. Оказывается, не всё сложилось как надо и теперь надо снова взять актуальную спецификацию Swagger 2.0 и перевести в OpenAPI 3.0. С одной стороны, я знаю, что справлюсь за те же 2 дня. С другой тратить их так бездарно во второй раз не хочу. А вдруг будет третий раз? Четвёртый? Жизнь непредсказуема. ...

20 февраля 2026 г. · 2 минуты · CrazyElephant_x

Проектирование RESTful API: фильтрация, сортировка и пагинация

Проектирование RESTful API сегодня — фундамент современной веб-разработки, дающий возможность создавать мощные, масштабируемые и эффективные веб-приложения. Для оптимального пользовательского опыта и высокой производительности сервера при проектировании таких API критически важны три функции: фильтрация, сортировка и пагинация. Фильтрация позволяет пользователям сужать результаты по заданным критериям. Сортировка помогает упорядочивать данные нужным образом. Пагинация же разбивает большие наборы данных на части, снижая объем передаваемой информации и повышая скорость работы системы. В этой статье мы подробно разберем значение фильтрации, сортировки и пагинации для REST API. Вы узнаете о разных подходах к пагинации, таких как курсорная (cursor-based) и офсетная (offset-based), и увидите примеры их реализации. ...

23 июля 2025 г. · 3 минуты · CrazyElephant_x

gRPC

gRPC (Google Remote Procedure Calling) — это современный высокопроизводительный фреймворк для удаленного вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для передачи данных и Protocol Buffers (Protobuf) в качестве формата сериализации. gRPC поддерживает несколько режимов взаимодействия: унарные вызовы, серверные потоки, клиентские потоки и двунаправленные потоки. Когда использовать gRPC Высокая производительность: Google Remote Procedure Calling оптимизирован для низкой задержки и высокой пропускной способности, что делает его идеальным для микросервисов и распределенных систем. Строгая типизация: Protobuf обеспечивает строгую типизацию данных, что упрощает разработку и уменьшает вероятность ошибок. Потоковая передача данных: Google Remote Procedure Calling поддерживает потоковую передачу, что полезно для задач в реальном времени (например, чаты, IoT). Мультиязычность: gRPC поддерживает множество языков программирования, что удобно для гетерогенных систем. Сложные сценарии взаимодействия: Если требуется двунаправленное взаимодействие или длительные соединения. Разница gRPC и REST Протокол: REST использует HTTP/1.1, а gRPC — HTTP/2, что обеспечивает более эффективную передачу данных. Формат данных: REST обычно использует JSON или XML, а gRPC — бинарный формат Protobuf, который компактнее и быстрее. Типизация: REST слабо типизирован, а Google Remote Procedure Calling строго типизирован благодаря Protobuf. Режимы взаимодействия: REST ограничен запросами и ответами, а Google Remote Procedure Calling поддерживает потоковую передачу и двунаправленное взаимодействие. Производительность: Google Remote Procedure Calling обычно быстрее и эффективнее благодаря бинарному формату и использованию HTTP/2. Минусы Несмотря на множество преимуществ, у протокола есть свои недостатки, которые могут ограничить его применение в некоторых сценариях: ...

27 января 2025 г. · 2 минуты · CrazyElephant_x

API driven development

API driven development — это методология программирования, которая ставит API в центр внимания и разработки. Подход API driven development В этом подходе API помогает выполнять следующие задачи: Запуск приложения: получение данных с сервера и их обработка фронтендом. Коммуникация: API служит мостом между фронтендом и бэкендом, обеспечивая их эффективное взаимодействие. Сигнализация требований: спецификация ожидаемого поведения и возвращаемых данных от бэкенд-системы. Сохранение всех данных: наличие схемы, описания и примеров использования API в одном месте. Тестирование: проведение тестов на основе чёткой и определённой схемы для проверки программного обеспечения. В рамках этого подхода разработчики должны активно общаться и координировать свои действия. Взаимодействие необходимо чтобы обеспечить успешную разработку и интеграцию API в проект. ...

4 января 2025 г. · 2 минуты · CrazyElephant_x