Автор оригинала: David Wong.
В последних проектах разработки я использовал Динго/Api Эта третья сторона Api Библиотека. Динго Это очень мощная штука. Api Библиотека, но в процессе разработки вам необходимо настроить поля ответов.
Первоначальное использование Bing/Api Когда вернетесь к следующему:
{
"message": "422 Unprocessable Entity",
"errors": {
"mobile": [
"Incorrect format of mobile phone number"
]
},
"status_code": 422
}Это происходит, когда возникает ошибка проверки поля ввода. Dingo Возвращает результат.
Похоже, это не проблема. Потому что код состояния здесь более стандартный. Для PHP нет ничего сложного сделать после прямого json_decode. Но в отличие от Android и IOS, это языки с сильной типизацией. Java, в частности, нуждается в создании и сериализации каждого объекта Json. Поэтому такой формат неоднородного возврата результатов, является неприемлемым.
Решение: Нам нужно объединить всю исключительную информацию в одном месте. Поставщик услуг приложений Из загрузки() Дополнения к методу
// Hand over all Exceptions to App Exceptions Handler
app('api.exception')->register(function (Exception $exception) {
$request = Illuminate\Http\Request::capture();
return app('App\Exceptions\Handler')->render($request, $exception);
});А затем Приложение\Исключения\Обработчик. php Средний визуализация() Метод:
$class = get_class($exception);
switch ($class) {
case 'Dingo\Api\Exception\ValidationHttpException':
if ($request->expectsJson())
return $this->errorRespond($exception->getErrors()->first(), $exception->getStatusCode());
break;
default:
if ($request->expectsJson())
Return $this - > error Respond ('System Rest', 500000);
break;
}Снова Интерфейс Доступа:
{
"response_status_code": 422,
"Response_message": "Please fill in your cell phone number".
"data": []
}Оригинал: “https://developpaper.com/laraveldingo-api-custom-response/”