Что такое 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