Найти в Дзене
Легко в’IT

Так REST или RESTFUL?

Источник изображения: https://nordicapis.com
Источник изображения: https://nordicapis.com

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

Итак, REST, а лучше - RESTful, но сначала поговорим про REST, а потом про ful. Расшифровывается это как Representational State Transfer, то есть передача состояния какого-то там представления, то есть сущности. Клиент не хранит статусы сущностей сервера (в нашем прошлом примере - это, допустим, остаток стульев на складах), а при необходимости его запрашивает. Звучит сложнее, чем оно есть на самом деле. Объясню на пальцах.

Помнишь, когда я тебе рассказывал про клиент-серверное взаимодействие, я говорил, что клиент, к примеру, браузер Google Chrome, Mozilla Firefox, Яндекс Браузер и иже с ними отправляют серверу специальным образом сформированный запрос:

GET / HTTP/1.1
Host: ya.ru

На что сервер (в данном случае Яндекс) ему отвечает следующей абракадаброй:

HTTP / 1.1 200 OK
Content-Type: text/html
<!DOCTYPE html>

и дальше передает веб-страницу со строкой поиска. ВОТ АБСОЛЮТНО так же работают и REST сервисы. Но вот с этого момента повнимательнее. Видишь слово GET в запросе нашего браузера? Это метод, который клиент вызывает у сервера. В данном случае клиент хочет получить корневую (/) страницу. Вот полный список методов, которые может использовать клиент:

  • GET - получить объект
  • POST - добавить объект
  • PUT - перезаписать информацию об объекте
  • PATCH - обновить одно или несколько полей в объекте (например, обновить название и цену у стула, не обновляя его габариты и другие данные)
  • DELETE - удалить объект

А теперь снова открывай https://editor.swagger.io/ и посмотри, какие функции работают в магазине домашних животных из примера. Самостоятельно. Я не помогаю и жду, как вернешься - говори.

Так, стало яснее? Теперь коротко про “ful”. По сути RSTful обозначает 2 вещи:

  1. Твои API соответствуют всем архитектурным принципам REST (эту нудятину ты пожалуйста без меня почитай)
  2. Все твои объекты в твоем API работают с GET, POST, PUT и DELETE

Всё, никакой великой тайны тут нет. Но ты смотри, если какие-то вопросы, то обязательно спрашивай, я тут для этого.

#REST #API #OpenAPI