Найти в Дзене

Да кто такие эти ваши REST API

Прежде всего - статья. Кто в состоянии её прочитать и понять может не читать дальше (но это не я).

Теперь своими словами, опираясь на множество определений и собственные способности излагать:

  1. API - протокол общения между двумя программами. Если на пальцах, то: клавиатура и ПК общаются друг с другом через API. Им в данном случае является USB порт.
  2. Representational State Transfer или REST - концепция взаимодействия с веб-сервисом, стиль взаимодействия компонентов.
  3. Ну ок, а как взаимодействует? Характерный стиль включает в себя шесть пунктов:

    • Клиент-серверная архитектура.
    Хотим изменить логику обработки информации на сервере? Делаем это на сервере, логика клиентов остается такой же.

    • Stateless.
    Сервер в запросе получает необходимую информацию. Хранить её - задача клиента. Есть еще обратная сущность - Stateful. Извольте-с, сударь, к серверу БД прикрутить, шоб она всю важную инфу хранила.

    • Кэширование.
    Сервер быстрее отдаёт информацию, если запрос от клиента уже приходил ранее. Потому что держит такую информацию в кэше. Почисти кэш бразуера, кстати!

    • Единообразие интерфейса.
    Новая и моднейшая для меня аббревиатура HATEOAS, означающая, что сервер в ответе клиенту отдаёт не только ресурс, но и его связи с другими ресурсами и действия, которые можно с ним совершить. Чепуха какая-то, но с ВКЛ HATEOAS клиент становится более гибким и самостоятельным. А это нам и надо.

    • Layered system.
    Слоистая архитектура. Элементы системы живут независимо друг от друга. Клиент обращается к прокси, прокси к балансировщику, а балансировщик к серверу. Каждого из этих товарищей можно тюнинговать без вреда для остальных.

    • Code on demand.
    Код по требованию или "сам выполняй что тебе надо" - сервер не выполняет какие-то действия при запросе клиента, он отдает клиенту инструкцию, как делать самостоятельно.
  4. REST API использует HTTP (про него в вышеупомянутой статье рассказывают тоже) методы: GET, POST, PUT, DELETE.
  5. Резюмируя, если слышно: "у нас REST", "RESTful-сервис", "RESTAPI" - это значит, что продукт понимает вышеуказанные методы и соответствует вышеописанным стандартам.

Ну и чё?


Да ничё.
Есть у тебя личный кабинет (ЛК) какой-нибудь богодельни, контакта, госуслуг и тд.
Можно в этот личный кабинет зайти и кнопки там всякие нажимать, заполнять поля. А можно по API выполнять методы - получить инфо, внести данные, удалить данные и всякое такое.
Результат, визуально, если смотреть в сам ЛК, будет один и тот же.
Через API это просто быстрее и автоматизируется. Удобно, короче.