Мне нужно сделать множество вызовов API в моем приложении. У меня около 8 триллионов вызовов Ax ios.
Поэтому я решил создать вспомогательную функцию для axious и передавать ей URL-адрес каждый раз, когда я хочу выполнить HTTP-запрос.
Но я получаю ошибку вот мои файлы:
apiUtils. js:
const axios = require("axios")
const handleError = require('./apiHandleError')
const SERVER_DOMAIN = process.env.HOST;
const AuthorizationHeader = process.env.AUTH
const getHeaders = () => {
return {
headers: {
'Authorization': AuthorizationHeader
},
};
};
// HTTP GET Request - Returns Resolved or Rejected Promise
const getRequest = (url) => {
return new Promise((resolve, reject) => {
axios.get(`${SERVER_DOMAIN}${url}`, getHeaders())
.then(response => {
resolve(response)
})
.catch(error => {
reject(handleError(error))
});
});
};
module.exports = getRequest
//apihandleError.js - Common Error Handler Function
const handleError = (error) => {
let {
status,
message
} = error.response;
switch (status) {
case 401:
console.log(status)
break;
// do something when you're unauthenticated
case 403:
console.log(status)
// do something when you're unauthorized to access a resource
break;
case 404:
message = ({
status: `Couldn't reach Arena Gaming Server. Try again later`,
result: 404
})
// do something when the resource isnot found
break;
case 500:
console.log(status)
// do something when your server exploded
break;
default:
// handle normal errors with some alert or whatever
}
return message; // I like to get my error message back
}
module.exports = handleError
И вот как я вызываю функцию:
const userId = getRequest(`/api/reports/users/${userId}/general`)
.then(data => {
console.log(data);
// do something with User #5
})
.catch(errorMessage => {
console.log(errorMessage);
// the error has already been handled by handleError
// the message get's passed here
// do something like store it in redux, etc.
});
Я получаю errorMessage результат: status: `Couldn't reach Arena Gaming Server. Try again later`,
result: 404