API это не всегда про REST

По нашему опыту, много людей считает, что если мы говорим об API, то это всегда разговор про REST. Конечно, Рест - один из основных паттернов в дизайне, который стал пользоваться большой популярностью в последнее десятилетие. Однако Рест - это всего лишь вид АПИ.


На текущий момент тулбокс API включает в себя много стандартов и методологий, таких как REST, real-time Streaming, gRPC, событийно-ориентированную архитектуру и многое другое. Давайте же немного рассмотрим эти виды, но перед этим вспомним, что вообще такое API.

Что такое api

API помогает одному компоненту или приложению общаться с другими посредством различных правил. Качественное API оставляет хорошее впечатление о вашем продукте в целом, так как это первое, с чем встречаются разработчики при работе с проектом.

API бывают внутренние, внешние, партнерские и составные.
  • Внутренние используются, когда нужно связать компоненты одной системы. Например, взаимодействие клиента и сервера одного приложения;
  • Внешние API создают для совместного использования. Например, кто-то сделал сайт с прогнозом погоды и поделился API для ее отслеживания. Другому человеку не нужно думать о том, как сделать эту функцию на своем сайте - он может просто воспользоваться API и произвести внешнюю интеграцию;
  • Партнерские API похожи на внешние, но доступ к ним дают только после заключения партнерского договора. Например, если мы хотим принимать платежи на своем сайте с помощью внешней платежной системы;
  • Составные API - это система API, объединяющая два или более API для выполнения сложных задач.

Набор инструментов API или разные API

Набор инструментов АПИ (API toolbox) - это структура API, которая получила сильное развитие в последние несколько лет и, мы уверены, будет еще развиваться.

  • С Web APIs вы уже хорошо знакомы - это те самые REST и SOAP. Взаимодействие осуществляется с помощью запросов/ответов, представленных в форматах XML и JSON.
  • Distributed Data Streaming APIs - это API реального времени, в основу легли события. Под событиями имеют ввиду различные состояния приложения, уведомления и другую информацию - то есть, что произошло и в какой момент это случилось. В отличие от Web APIs, немедленный ответ не требуется.
  • Модель Pub-Sub APIs довольно простая - это шаблон проектирования передачи сообщений, в котором отправитель сообщений (publisher - издатель) напрямую в программном коде не привязан к получателям (subscriber - подписчик). Сообщения не содержат информацию о подписчиках, а подписчики абстрагированы от издателей.
  • Browser Based APIs - это API, встроенные в браузеры. Служат для создания сетевых запросов, управления хранилищем на стороне клиента, извлечения медиапотоков устройства и для других задач.
  • Java API - это набор API, разработанный для работы с языком Java. Есть официальные, дополнительные и неофициальные API, которые нужны для работы с пользовательским интерфейсом, с файлами, с сетью и так далее.

В рамках одной системы могут использоваться разные API - например, Web APIs в сочетании с Distributed Data Streaming APIs.

На рисунке выше мы изобразили несколько Апи, но далеко не все. Вы можете увидеть, что RESTFul API - это лишь маленькая часть, а некоторые из них не используют протокол HTTP. Некоторые из них используют TCP/IP, STOMP или браузер.


Мы хотим показать вам вкратце различные АПИ без детального объяснения, как это все работает.

Практический опыт по API
Вы можете получить на нашем курсе