212 похожих чатов

Может моё восприятие REST-стиля как-то искажено?🤷🏻‍♂️

5 ответов

11 просмотров

Попытаюсь объяснить) Смотри, у тебя есть очень умный чайник с подключением к инету и имеющий встроенный web-сервер. Тебе надо вскипятить воду) Вот примерный флоу: 1. POST /teapot/on post здесь потому что ты посылаешь коммандлу изменить состояние чайника, т.е. включить его 2. Далее поставим на кипячение PUT /teapot/boiling/on put здесь, потому что ты изменяешь состояние конкретного чайника 3. Выключить кипячение (аналогично) PUT /teapot/boiling/off 4. Получить температуру воды в процессе закипания GET /teapot/temperature 5. выключить вообще чайник DELETE /teapot Примерно надор в таком ключе думать о REST, но конечно, CRUD очень хорошо ложится на него. Есть несколько уровней REST, поссмотри на них. HATEOS это самый "крутой" уровень))

Nikolay-Deriglazov Автор вопроса
Dmitry
Попытаюсь объяснить) Смотри, у тебя есть очень умн...

https://habr.com/ru/post/441854/ но меня поткупает эта статья)

Nikolay-Deriglazov Автор вопроса
Dmitry
Попытаюсь объяснить) Смотри, у тебя есть очень умн...

Ведь даже здесь, возникает противоречие. Почему /teapot/on именно POST? А /teapot/boiling/on это PUT?

Nikolay Deriglazov
Ведь даже здесь, возникает противоречие. Почему /t...

Вот, пригла идея контракта) POST в данном случае используется как команда и для инициализации пустого "объекта". А put у нас идемпотентен, т.е. если мы будем постом включать нагрев, то ничего не произойдет

Dmitry
Попытаюсь объяснить) Смотри, у тебя есть очень умн...

Вы описали обычный http-rpc-api. Haetos не уровень а свойсво/требование. Хорошая проверка рест у вас или нет -- это спросить себя может ли ваш клиент работать с любым рест сервисом и может ли ваш сервис работать с любым рест клиентом.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Hey someone plz help to resolve my issue here is my table... Log { id user_id type target_ct target_obj_id action_ct action_obj_id workspace_id created_at } i wanna fil...
Rahul Singh
1
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта