Я разрабатываю REST API с использованием Lumen.Я думал, что использование ключа details
внутри объекта JSON удобно для отображения ошибок.Смотрите ответ:
{"detail": "Something bad happened."}
У Lumen есть проверка, которую вы можете вызвать внутри контроллера, как в $this->validate(["foo" => "required", "bar" => "required"})
.Если я не установлю значение foo
в теле запроса, сервер естественным образом ответит:
{
"foo": [
"The foo field is required."
]
}
Однако я также хочу, чтобы они были внутри клавиши details
, чтобы это было удобно для потребителя.Смотрите желаемый ответ:
{
"details": {
"foo": [
"The foo field is required."
]
}
}
Возможно ли это сделать, если да, то как?
Дальнейшее расследование
Как Валидационный раздел в документации Lumen состояния:
В случае сбоя проверки помощник $ this-> validate сгенерирует Illuminate \ Validation \ ValidationException со встроенным ответом JSON, включающим все соответствующие сообщения об ошибках.
Это означает, что каким-то образом мне нужно расширить ValidationException
, но я до сих пор не представляю, как вызвать метод CustomValidationException
in $this->validate
.
Environment