Нарушает ли RESTful дизайн command and query segregation principle?Неустойчивый дизайн нарушает принцип командного запроса?
В нашем дизайне у нас есть контроллеры, которые направляют запросы на классы обслуживания.
методы в классах обслуживания, являются ли они GET/POST/PUT, всегда будет иметь возвращаемое значение:
public Dog PutDogToSleep(/*params*/)
{
dogService.Sleep(..);
return dog;
}
Я не могу найти его прямо сейчас, но я читал, что HTTP RESTful request (get/post/put) должен вернуть объект, на котором выполняется запрос. Например, если вы выполняете PUT, тогда вы будете выполнять этот put и затем возвращать текущее состояние объекта.
Поскольку наши методы что-то делают (.Sleep) И возвращают данные, они нарушают принцип команды и запроса seg?
Реализация REST не соответствует команде/запросу?
If вы делаете REST через HTTP затем RFC7231 точно описывает , какое поведение ожидается от GET, PUT, POST и DELETE.
Использование HTTP правильно имеет очень мало общего с REST. REST - это ссылки (гиперссылка), а не глаголы HTTP. В любом случае ни REST, ни HTTP не определяют, что вы должны вернуть отправленный вами объект - если у вас есть цитата, в которой говорится иначе, вы должны включить ее в свой вопрос. «Я читаю его где-то» не достаточно :) – Luaan
будет автору этого ответа, пожалуйста, скажите мне, почему вы удалили свой хороший ответ:? Нет, вы можете использовать проецирование для: построить только DTO на основе ваших сущностей данных для вашей стороны запроса построить команду DTO для вашей командной стороны ... и разоблачить тех, у кого есть веб-API. –
Потому что я неправильно понял вопрос, и он не ответил на ваш вопрос ...:) –