API являются одним из важнейших компонентов современной разработки ПО. Они образуют связи между приложениями для передачи информации и предоставления услуг. Однако, даже по мере того, как разработчики все чаще рассматривают API на ранних этапах жизненного цикла разработки, остается некоторая путаница в отношении того, какие типы API лучше всего подходят для конкретных приложений.
Каждый тип API имеет свою собственную архитектуру, которая развивалась в соответствии с требованиями времени и решала определённые проблемы. По мере того, как технологии развивались на протяжении многих лет, менялось и отношение к ним. Мы стали свидетелями появления новых API, которые служат для определенных целей и решают различные проблемы.
Список наиболее часто используемых типов API выглядит следующим образом:
- REST
- SOAP
- GraphQL
- WebSockets
- gRPC
Далее мы рассмотрим различные типы протоколов API, чтобы получить представление об их плюсах и минусах. Посмотреть на распространенные варианты использования и другие соображения при выборе наилучшего способа для решения конкретных задач.
REST
REST API предназначены для обеспечения доступности серверных данных. Они представляются в простых форматах, таких как JSON или XML. Аббревиатура REST расшифровывается как REpresentational State Transfer. Она появилась в 2000 году после того, как была представлена Роем Филдингом. Этот тип API соответствует шести определённым архитектурным ограничениям:
- Единый интерфейс
- Отсутствие записи состояния клиента
- Кэширование
- Архитектура клиент-сервер
- Многоуровневая система
- Возможность предоставлять клиенту исполняемый код
Плюсы
Операции выполняются с помощью различных HTTP-методов. Среди них GET, POST, PUT, DELETE и PATCH. Используя их, REST API становятся чрезвычайно эффективными для использования в Интернете.
Ключевые преимущества этого типа API заключаются в том, что клиент и сервер полностью отделены друг от друга. Это позволяет использовать уровни абстракции, которые помогают поддерживать гибкость по мере масштабирования и развития системы. Кроме того, REST поддерживает кэширование и различные форматы передачи данных, что важно при создании общедоступных API. Получаемое в результате гибкое форматирование данных делает их чрезвычайно полезными для различных приложений.
REST API чаще всего используются в качестве интерфейсов управления для взаимодействия с объектами в системе. Они также полезны при создании простых приложений, основанных на ресурсах, которым не требуется большой гибкости запросов.
- Возможность реализовывать операции CRUD с помощью HTTP стандартных методов.
- Много разработчиков уже знакомы с REST, т.к. он используется уже давно.
- Поддержка кэширования.
- Масштабируемость и разделение между клиентом и сервером.
- Легкая интеграция в несколько приложений.
Минусы
Недостаток REST API заключается в том, что иногда вы можете получить больше данных, чем вам требуется и это может вызвать больше проблем, чем пользы. Или наоборот, придётся делать дополнительные запросы к API для получения всех нужных данных, что замедляет процесс.
Обратной стороной гибкости, является отсутствие обязательного контракта в котором указано, какая структура используется для сообщений. В результате, когда дело доходит до реализации, возникает много проблем и узких мест.
- Имеет проблемы чрезмерной и недостаточной выборки.
- Отсутствие поддержки состояния.
- Имеет большие размеры запросов и ответов.
- Количество конечных точек резко увеличивается по мере масштабирования приложения.
В следующий раз мы рассмотрим несколько других популярных API.