GET /order — не корректный запрос/uri GET /orders — получить коллекцию заказов. Если в рамках существующих фильтров ничего не найдено, вернуть пустую коллекцию с кодом 200 (запрос же корректно был обработан). Как альтернатива, можно вернуть код 400, но как по мне — это уже дело вкуса… GET /order/{id} — вернет 200, если заказ (ресурс) с таким id существует. 404, если заказ не найден, не корректный id или клиенту нельзя знать о существовании такого id
Дизайн rest api предполагает, что код ответа (http статус) уже несет в себе нужную информацию. Вы можете дополнить тело ответа информацией про ошибку, при условии отладки. Автор статьи игнорирует рекомендации по дизайну и всегда отдает сообщение из исключения, в обход ExceptionHandler'а
Лучше отвечать кодом HTTP. Так же, фреймворк предоставляет для этого все нужное, используя настройки окружения (debug флаг) для более развернутой информации про ошибку
3. try-catch конструкция внутри контроллера — лишнее. Есть ExceptionHandler из коробки
4. Вот в этом месте
$orderService->createOrderFromRequest($request)
Вы рискуете получить лишние данные прямо в сервисный слой. Используйте метод "$requests->validated()"
GET /order
— не корректный запрос/uriGET /orders
— получить коллекцию заказов. Если в рамках существующих фильтров ничего не найдено, вернуть пустую коллекцию с кодом 200 (запрос же корректно был обработан). Как альтернатива, можно вернуть код 400, но как по мне — это уже дело вкуса…GET /order/{id}
— вернет 200, если заказ (ресурс) с таким id существует. 404, если заказ не найден, не корректный id или клиенту нельзя знать о существовании такого id2. А вот пример в Вашем коде, как не нужно делать:
Лучше отвечать кодом HTTP. Так же, фреймворк предоставляет для этого все нужное, используя настройки окружения (debug флаг) для более развернутой информации про ошибку
3. try-catch конструкция внутри контроллера — лишнее. Есть ExceptionHandler из коробки
4. Вот в этом месте
Вы рискуете получить лишние данные прямо в сервисный слой. Используйте метод "$requests->validated()"
— стиль кода оставляет желать лучшего
— было бы здорово увидеть живое демо
— es5…