раздел 03

Какие бывают API

«API» - общее слово. Под ним прячутся разные стили общения программ. Знать все наизусть не нужно, но полезно понимать, что попадётся чаще и когда что выбирают.

Четыре стиля

REST
Самый частый. Запрос по HTTP: метод плюс URL, ответ в JSON. То, что мы разбирали в прошлых главах. Если не сказано иное - это REST.
GraphQL
Один endpoint, но в запросе вы сами описываете, какие именно поля хотите. Удобно, когда данных много и не нужно тянуть лишнее.
WebSocket
Постоянное соединение для общения в реальном времени. Сервер сам шлёт обновления. Чаты, биржевые котировки, онлайн-игры.
gRPC
Быстрый бинарный протокол для общения сервисов между собой. Не для браузера, а для нагруженных систем внутри компании.

Когда какой

  • REST - значение по умолчанию. Получить и отправить данные, интеграция с чужим сервисом, публичное API. В 9 случаях из 10 это он.
  • GraphQL - когда клиенту (приложению, сайту) нужно гибко выбирать данные и экономить на лишних запросах.
  • WebSocket - когда важна мгновенность и сервер должен сам присылать события, а не ждать запроса. Признак: «в реальном времени».
  • gRPC - внутренняя кухня крупных систем, где сервисы много общаются друг с другом и важна скорость.

Публичные и внутренние API

  • Публичные - сервис открывает API наружу, чтобы им пользовались сторонние разработчики. Есть документация, регистрация, ключи. Пример: API карт, погоды, платежей.
  • Внутренние - API существует только внутри компании, чтобы её же сервисы общались между собой. Наружу его не публикуют и обычно не документируют для посторонних.