Ответ сервера
[
'errors' => [
[
'status' => '400 Bad Request',
'code' => 'danger',
'title' => 'Текст ошибки',
'meta' => [
'myfield' => 'field value',
],
],
],
'data' => [],
]
* Настоятельно рекомендуется пользоваться быстрыми фасадами (см. внизу)
Массив errors
Содержит набор элементов всех ошибок. Каждая ошибка состоит из следующих элементов:
- status (строка, обязательно): код состояния HTTP;
-
code (строка, обязательно): код ошибки, специфичный для приложения:
- danger: Критическая ошибка;
- warning: Обратите внимание (не критическая ошибка);
- info: Информационное сообщение.
- title (строка, обязательно): краткое, понятное для человека описание проблемы;
- meta (массив, необязательно): массив дополнительных данных об ошибке для приложения.
403 Forbidden
При таком ответе можно также передать параметр redirect
в meta
, принимает значение true\false
Если параметр не передан, или значение установлено true
, тогда при получении такой ошибки клиент направит пользователя на страницу /403
При значении false
клиент покажет ошибку и не будет выполнять переход
[
'errors' => [
[
'status' => '403 Forbidden',
'code' => 'warning',
'title' => 'Доступ ограничен',
'meta' => [
'redirect' => true,
],
],
],
]
Часто используемые статусы
- 303 See Other - «редирект»
- 400 Bad Request - «плохой, неверный запрос»
- 401 Unauthorized - «не авторизован (не представился)»
- 403 Forbidden - «запрещено (не уполномочен)»
- 404 Not Found - «не найдено»
- 500 Internal Server Error - «внутренняя ошибка сервера»
- Полный список
* Если есть массив errors
, тогда не может быть массива data
Массив data
Содержит набор элементов ответа.
* Если есть массив data
, тогда не может быть массива errors
Быстрые фасады
Для быстрой генерации ответа используйте фасады:
use Lemurro\Api\Core\Helpers\Response;
// Для успешного выполнения
return Response::data($array_data);
// Часто используемые ошибки
return Response::error400($title, $meta);
return Response::error401($title, $meta);
return Response::error403($title, $redirect, $meta);
return Response::error404($title, $meta);
return Response::error500($title, $meta);
// Для указания особенной ошибки
return Response::error($status, $code, $title, $meta);
// Для обработки Exception
// Если код не передан, не совпадает с быстрыми фасадами или отсутствует: тогда ошибка будет 500
try {
throw new Exception('Ошибка в запросе', 400);
} catch (Exception $e) {
// Вернёт ошибку как если бы вы использовали return Response::error400('Ошибка в запросе');
return Response::exception($e);
}