L'Istanza Axios
Creare un'istanza
Puoi creare una nuova istanza di axios con una configurazione personalizzata.
axios.create([config])
const instance = axios.create({
baseURL: "https://some-domain.com/api/",
timeout: 1000,
headers: { "X-Custom-Header": "foobar" },
});
Metodi di istanza
Di seguito sono elencati tutti i metodi disponibili nell'istanza. La configurazione definita in config verrà unita a quella predefinita dell'istanza.
axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
axios#getUri([config])
Chiamare l'istanza con un oggetto di configurazione
In aggiunta all'utilizzo dei metodi instance.get() oppure instance.post(), è possibile invocare direttamente un'istanza di Axios passando un oggetto di configurazione come parametro. Questo è equivalente a chiamare axios(config), ed è particolarmente utile quando vuoi ripetere una richiesta usando la stessa configurazione della richiesta originale.
const instance = axios.create({ baseURL: "/api" });
// Funziona esattamente come axios(config)
instance({
url: "/users",
method: "get",
});
Questo tipo di approccio permette logiche di retry pulite quando si gestiscono errori di autenticazione:
instance.interceptors.response.use(undefined, async (error) => {
if (error.response?.status === 401) {
await refreshToken();
return instance(error.config); // Ritenta la richiesta originale con la stessa configurazione
}
throw error;
});