Какая конечная точка подойдет для ответа на вопрос в REST design - PullRequest
0 голосов
/ 28 мая 2019

Какая конечная точка будет подходящей для ответа на вопрос.

Я подумал, используя

 post /questions/{id}

Это не говорит само за себя.С помощью публикации в "/ question / 2" сложно представить, что он отвечает на вопрос.

Я думал об использовании

 post  /questions/{id}/answers 

Вопрос и ответы не сопоставляются с моделями или таблицами вмоя система, если это актуально.Я использую другой API для доступа к вопросу.Мое приложение служит хабом.

1 Ответ

0 голосов
/ 29 мая 2019

REST не волнует, какое правописание вы используете для своего URI. /cbcaf573-4f34-40ae-a91b-f097adfac495 - вполне удовлетворительный URI. Различные соглашения об орфографии, которые вы видите, должны иметь примерно такой же вес, как и имена переменных в вашем местном стандарте кодирования; людям легче понять, что происходит, но машинам все равно.

На что вы обычно хотите обратить внимание: представление какого ресурса будет изменено в результате запроса. Если представление /questions/{id} обычно будет включать в себя все ответы, то вы, как правило, захотите отправить ответ на questions/{id}. Если в представлении вопроса есть только ссылка на ответы, обычно вам нужно отправить POST к тому же URI, что и ссылка.

Мотивация для этого заключается в том, что правила HTTP * аннулирования кэша основаны на целевом URI небезопасного запроса.

Однако использование стиля аннулирования кэша не требуется. Например, по этому вопросу здесь: это URI

/9490517/kakaya-konechnaya-tochka-podoidet-dlya-otveta-na-vopros-v-rest-design

Но когда я отправляю ответ, запрос POST с данными моей формы отправляется на

/9490517/kakaya-konechnaya-tochka-podoidet-dlya-otveta-na-vopros-v-rest-design

И при успешном сохранении моего ответа я получаю перенаправление на стороне клиента на

/9490517/kakaya-konechnaya-tochka-podoidet-dlya-otveta-na-vopros-v-rest-design

И это тоже работает - у моего браузера нет проблем с выяснением того, как создавать запросы, которым он должен следовать по протоколу отправки.

...