#javascript #react-native #fetch #postman #fetch-api
#javascript #react-native #выборка #postman #fetch-api
Вопрос:
У меня есть api, используемый для входа в мое приложение react native. API реализован и работает так, как предполагалось. Но проблема в том, что если пользователь вводит неправильный адрес электронной почты или пароль, я не получаю сообщение об ошибке в ответе в приложении. Хотя, если я протестирую api вручную в postman, он возвращает требуемое сообщение об ошибке. я попытался создать преобразователь для ответа об ошибке, но не знаю, как его реализовать или использовать. Я использую выборку для вызова своих API.
return fetch(fullUrl, requestParameters)
.then((response) => {
if(response.ok) {
return response.headers.get("content-type") === "application/json" ? response.json() : null
} else {
errorrr = ErrorTransformer.backward(response)
console.log("Error: ", errorrr)
}
И ниже приведен преобразователь, созданный для ответа на ошибку
import {createTransformer} from './Transformer';
const ErrorTransform ={
o:[
['message','message'],
['code','code'],
]
}
export default createTransformer(ErrorTransform)
И ниже приведен ответ, возвращенный postman при вводе неправильной информации
{
"message": "error",
"code": 1
}
Ответ №1:
Вы можете проверить на основе кода ответа. Я предлагаю использовать библиотеку Axios. Axios NPM
Ответ №2:
После множества попыток я понял, что ответ postman, когда пользователь вводит неправильный адрес электронной почты или пароль, является обычным объектом ответа, это не ошибка. Поэтому его обработка должна быть похожа на обычный ответ. Но что оставалось препятствием, так это различать, когда у меня есть успешный ответ с возвращенной информацией или когда я возвращаю объект ошибки. Я решил эту проблему, объединив преобразователь ошибок с преобразователем входа, и он отлично справился с этим.