Да, я знаю, что хронологически более корректно было бы сначала рассказать про 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 вещи:
- Твои API соответствуют всем архитектурным принципам REST (эту нудятину ты пожалуйста без меня почитай)
- Все твои объекты в твоем API работают с GET, POST, PUT и DELETE
Всё, никакой великой тайны тут нет. Но ты смотри, если какие-то вопросы, то обязательно спрашивай, я тут для этого.
#REST #API #OpenAPI