Что такое REST API
REST API
один из самых распространенных способов обмена данными между приложениями через интернет.
Что такое API
API
это набор инструкций, который позволяет разным программам общаться между собой и обмениваться данными
API
(Application Programming Interface, программный интерфейс приложения) — это способ, который позволяет двум программам или сервисам общаться друг с другом и обмениваться данными. Проще говоря, API
выступает посредником между разными программами: одна программа отправляет запрос через API
, другая — получает этот запрос, выполняет необходимые действия и возвращает ответ. При этом разработчикам, использующим API
, не нужно знать, как именно реализованы внутренние механизмы той программы, к которой они обращаются — достаточно понимать, как спросить и что ожидать в ответ.
API
позволяет безопасно и стандартизованно использовать функции и данные одного приложения в другом. Например, многие сайты позволяют авторизоваться через учетную запись ВКонтакте, это реализовано посредством API
: сайт отправляет запрос в API
социальной сети, получает подтверждение и информацию о вашем профиле. Другой пример — на сайте можно увидеть встроенную карту с отметкой местоположения. Этот сайт не знает, как строить карты — он просто использует API
картографического сервиса, например Google Maps API, который по запросу возвращает готовую карту для отображения.
Благодаря API
разные сервисы и приложения могут интегрироваться друг с другом: от обмена сообщениями между мессенджерами и играми, до платежей через агрегаторы, отображения погоды из внешнего сервиса, и т.д.
Что такое REST
REST
архитектурный стиль взаимодействия между клиентом и сервером через HTTP
REST
(Representational State Transfer, передача состояния представления). Это набор правил для создания API
на основе протокола HTTP
. Говоря проще, REST
определяет как должным образом строить URL-адреса и формировать запросы.
Главная идея REST
, представить все данные сервиса в виде ресурсов, у каждого из которых есть свой адрес URL
. Для работы с ресурсами используются стандартные методы HTTP
. Такой подход унифицирует программные интерфейсы и делает их простыми для понимания и использования. У REST
нет жесткого стандарта, это скорее набор принципов. Перечислим ключевые принципы REST
и кратко их поясним:
Клиент-серверная архитектура (Client-Server)
клиент (фронтенд или приложение) и сервер (бэкэнд или база данных) четко разделены. Клиент отвечает за интерфейс пользователя, сервер — за хранение данных и логикуОтсутствие состояния (Stateless)
каждый запрос клиента не зависит от предыдущего и содержит всю информацию, необходимую для обработки на сервере. Сервер не хранит контекст между запросамиКэшируемость (Cacheable)
ответы сервера могут кэшироваться (сохраняться) на некоторое время, чтобы при повторных запросах не нагружать сервер повторной обработкой одинаковых данных. В самом запросе или ответе обычно указывается, можно ли его кэшировать и на какой срокЕдинообразие интерфейса (Uniform Interface)
взаимодействие с разными ресурсами происходит единообразно, по общим правилам
Запросы используемые в REST API
REST API
работает поверх протокола HTTP
, а HTTP
предусматривает различные методы запросов, по сути виды действий, которые клиент хочет выполнить с ресурсом. Выделяются четыре самых распространенных метода в REST API
:
GET
используется для получения или чтения данных.GET
запросы не изменяют данные на сервере, а только запрашивают информациюPOST
этот метод чаще всего используется, чтобы добавить новый ресурс на серверPUT
метод для обновления существующих данных, или полного замещения. ОбычноPUT
запрос отправляется на конкретныйURL
ресурса и содержит обновленную версию данных. Сервер по этому запросу заменяет текущую информацию ресурса новойDELETE
как понятно из названия, используется чтобы удалить что-либо на сервере
Формат обмена данными
REST API
, обычно обменивается данными в двух форматах:
JSON
текстовый формат который наиболее популярен, данные представлены в виде структур ключ и значениеXML
текстовый формат, визуально похож наHTML