REST API альтернативы или виды API

REST API альтернативы

REST API стал одним из самых популярных методов создания публичного API. Он победил многие другие методы своей простотой адаптации и создания. До REST, самым популярным был SOAP, который кстати используется до сих пор в энтерпрайз продуктах.

REST смог обогнать SOAP по адаптации и использованию по-следующим причинам:

  • SOAP/WSDL является очень сложным и во-многих случаях его слишком трудно использовать в так называемых тонких клиентах
  • Архитектура REST позволяет использовать все методы масштабирования и кеширования, используемых в HTTP
  • JSON стал стандартом де-факто для REST API. И это позволяет с легкостью обрабатывать данные в таких платформах как: Ajax, node.js и т.д.

REST стал безусловным лидером API, но в последние годы появились новые технологии, которые более уместны для некоторых задач. Среди них:

1. Асинхронный API

Нередко в современных приложениях вам приходится отправлять и получать данные в реальном времени. Асинхронность несовместима с REST. И тут нам на помощь приходят такие технологии как: WebSockets, MQTT, QMQP, Stomp и т.д.

Самые главные особенности этой технологии - постоянное соединение с сервером и возможность получать данные в реальном времени. Взять к примеру Web сокеты, они позволяют вам отправить один запрос к серверу и держать его пока клиент не закроет страницу. Помимо этого, вы можете отправлять обновленные данные как только они изменятся на сервере.

2. Оркестрированный API

Традиционный REST API дает возможность делать гранулированные запросы к серверу, загружая только необходимые данные. Но это и является его слабостью в случаях, когда вам нужно загрузить несколько видов данных. Возьмем как пример мобильное приложение или веб-приложение. Иногда для показа необходимых данных в них, вам придется делать множество API запросов, что негативно сказывается на скорости клиентской части и на производительности сервера. И конечно же это негативно сказывается и на кошельке.

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


А какие другие виды API вы знаете?