Это реально по restfull получается?
Если мы редактируем только некоторые поля не должны ли мы использовать PATCH?
Собственно, задача стоит следующая - есть статистика, в которой есть, предположим список почт, которым надо отправить сообщения. Как правильно это сделать по restfull?
Вадим: Вообще рест - это не правила, а рекомендации, соответственно правильно/неправильно здесь неуместно.
Да и вообще можете не заморачиваться чистым рестом, в 90% случаях, если не больше, то что люди называют рест - им не является, ибо реализует только часть этих рекомендаций.
А все из-за того что рест в большинстве реальных приложений не применим на 100% впринципе, ибо на деле pure rest противоречит безопасности в web
Так что я бы не заморачивался))
Если руководствоваться этими рекомендациями, то будет проще всей команде работать, собственно, сейчас в этим столкнулся.
Тогда endpoint самодокументируют себя, это все хорошо когда это все проецируется на модель, но если надо, сделать какие-то другие действия?! В рекомендация ничего не нашел, вот и решил спросить)
Rest регламентирует только CRUD по HTTP протоколу через его методы и доступ к ресурсам по uri
Create = POST
Read = GET
Update = PUT
Delete = DELETE
+ все запросы должны быть stateless - то есть каждый запрос должен передавать полный набор данных для него
Больше рест не регламентирует ничего, но согласно спецификации http,
запрос OPTIONS должен вернуть правильный заголовок о допустимых http методах для данного ресурса (критично, если клиентом является браузер и могут быть кроссдоменные AJAX запросы)
К чему я веду, к тому что Вы не сможете использовать 100%й рест в своем веб приложении, ибо запрос вида
GET /prefix/collection/?offset=40&limit=20
это уже не rest - так как ресурс здесь /prefix/collection/ но, что вернет этот запрос зависит от параметров после '?'
Так что примите в команде некоторые соглашения и не заморачивайтесь.
За свою довольно долгую практику в web я еще не встречал pure rest ни разу, этим словом, как и словом mvc собственно каждый называет согласно своему пониманию