ты генерируешь 400 прямо в бизнес-коде?
ты генерируешь 400 прямо в бизнес-коде?
MVC: ответ определяется моделью и оформляется во view.ты генерируешь 400 прямо в бизнес-коде?
так какой ответ из модели в итоге формируется в 400 ошибку? У меня это эксепшен(причем специальный, если другой, то 500). у Вурдалака PostPublishingErrors - типа если пустая, то 200, если нет, то 400. А у тебя?MVC: ответ определяется моделью и оформляется во view.
какое именно слово объяснить?
допустим, статус заказа: cancelled, приходит запрос UPDATE /orders/123 {"status":"cancelled"}, логичным ответом будет 200 OKНу давай попытаемся отменить заказ, который уже отменен. через API.
Оно нам должно выдать некую ошибку, что нельзя так.
ладно. трудно мне придумать нормальный пример. попробуем такой. человек хочет сделать заказ, но пока он думал, единственный экземпляр данного товара уже забрал в свой заказ другой покупатель.допустим, статус заказа: cancelled, приходит запрос UPDATE /orders/123 {"status":"cancelled"}, логичным ответом будет 200 OK
это уже становится грустно. модель не формирует ответы - ответы формирует view, а у моделей есть состояниетак какой ответ из модели в итоге формируется в 400 ошибку? У меня это эксепшен(причем специальный, если другой, то 500). у Вурдалака PostPublishingErrors - типа если пустая, то 200, если нет, то 400. А у тебя?
Дело именно в том, что пытаешь абстрактно обсуждать конкретные вещи.ой да какая разница. ты такой неабстрактный
В модели у меня генерится эксепшен. В вебе - он превратится в 400 ошибку. в консоли в error вывод. В телеграм-боте в свой ответ.вот и суть топика: @Adelf генерирует вывод прямо в модели, нарушая MVC
в этом случае проверку на состояние заказа ты по непонятной причине вырезал из обработчика и влепил в контроллер для формирования вида. В случае с исключением, проверка довольно абстрактная и находится на уровне аппликации, подходит к любой команде, звучит изначально как некоректные данные без дополнительной конкретики о том что это заказ у которого есть статус который должен быть cancelledдопустим, статус заказа: cancelled, приходит запрос UPDATE /orders/123 {"status":"cancelled"}, логичным ответом будет 200 OK
если в запросе будет UPDATE /orders/123 {"status":"processing"} - ответ будет 403 Forbidden
что "это"? статуса чего? проверку на что? дополнительную к чему?Это подразумевает дополнительную проверку этого статуса
если мы обсуждаем проверку ответа API клиентом - то она обязательна не "хотя бы", а всегдахотябы на наличие положительного ответа
в каком этом?в этом случае
в моих постах нет упоминаний ни о проверках, ни про обработчики - ни единогопроверку на состояние заказа ты по непонятной причине вырезал из обработчика
я не привел ни строки кода, только RESTful протоколвлепил в контроллер
try{
$res = $model->process($param);
}catch(Exception $E){
$logger->log($E->getMessage());
}
не для этогодля этого им дали специальный инструмент
Не согласен. Ответ 502 Gateway Timeout при попытке соединиться со шлюзом - инфраструктурый эксепшн. Событие "Не смогли отправить данные о платеже" которое пролучилось из этого инфраструктурного эксепшна - ошибка во время бизнес-процесса и часть бизнес-процесса.@флоппик первый ответ по теме
"что-то случилось с платежным шлюзом" или "email не отправился" это не эксепшены домена. это инфраструктурные эксепшены. их нет смысла обсуждать.
в моем представлении так: Идет процесс оплаты и только когда оплата дошла, делается order->markAsPayed()Не согласен. Ответ 502 Gateway Timeout при попытке соединиться со шлюзом - инфраструктурый эксепшн. Событие "Не смогли отправить данные о платеже" которое пролучилось из этого инфраструктурного эксепшна - ошибка во время бизнес-процесса и часть бизнес-процесса.
SMTP rejected - инфраструктурный эксепшн. "Письмо с подтверждением не отправлено" - событие в бизнес-логике.