Я застрял, решая, какой метод лучше всего подходит для обработки ошибок.Это включает в себя отправку запросов со стороны клиента Axios на сторону сервера Laravel.У меня есть два разных способа, как я могу потенциально обрабатывать ошибки.Что было бы лучше и почему?
В этом примере мы будем использовать выборку информации о профиле с сервера в формате JSON .
Первый метод обработки ошибок:
Серверная часть будет выглядеть так: она возвращает два разных ответа JSON, в зависимости от того, успешен он или нет.Во-первых, успешный ответ, а затем ответ об ошибке.
//success response
return response()->json([
'success' => true,
'data' => []
], 200);
//error response
return response()->json([
'success' => false,
'error' => []
], 400);
На стороне клиента это будет выглядеть следующим образом: он отправляет запрос через Axios для получения информации о профиле и обрабатывает его в соответствии с ответом HTTP.
axios.get('/json/profile')
.then((response) => {
// handle success response (HTTP CODE 200)
})
.catch((error) => {
// handle error response (HTTP CODE 400)
});
Проблема с этим методом заключается в том, что в консоли вы будете получать такие сообщения:
Второй метод обработки ошибок:
Этот метод позволяет избежать появления подобных сообщений в консоли, всегда возвращая HTTP-код ответа 200, с сообщением об ошибке в случае сбоя.
На стороне сервера будет выглядеть так,единственное, что изменяется, - это значение «success» в ответе сервера JSON.
//success response
return response()->json([
'success' => true,
'data' => []
], 200);
//error response
return response()->json([
'success' => false,
'error' => []
], 200);
Клиентская сторона будет выглядеть так, она проверит успешную часть ответа, является ли она истинной или ложной дляопределить, является ли это ошибкой.
axios.get('/json/profile')
.then((response) => {
if (response.success) {
//handle success
} else {
//handle error
}
});
Использование второго метода позволяет избежать любой информации об ошибках, передаваемой в консоль пользователя.