In this blog, I'll show you how to create an axios instance in a react project.
I had covered the fundamentals of Axios in my earlier blog.
Once your react app is created lets create a components
folder inside our src
directory .Later, inside our components
folder, create two folders named api
and main
to hold our api instance file and other webpage files.
src
|--components
|-api
|-main
Inside api
directory lets create a file named api_instance.js
. Here i am using my localhost as baseURL.
import axios from "axios";
const instance = axios.create({
baseURL : 'http://127.0.0.1:8000/api/',
headers: {
// Authorization: `<Your Auth Token>`,
Content-Type: "application/json",
timeout : 1000,
},
// .. other options
});
export default instance;
After we've finished creating our instance file, we can import it into our js file.
Let's create a file named home.js
inside main
folder
import React, { Component } from "react";
import instance from "../api/api_instance";
class Home extends Component {
constructor(props) {
super(props);
this.state = {};
}
async componentDidMount() {
try {
await instance({
// url of the api endpoint (can be changed)
url: "home/",
method: "GET",
}).then((res) => {
// handle success
console.log(res);
});
} catch (e) {
// handle error
console.error(e);
}
}
postData = async (e) => {
e.preventDefault();
var data = {
id: 1,
name: "rohith",
};
try {
await instance({
// url of the api endpoint (can be changed)
url: "profile-create/",
method: "POST",
data: data,
}).then((res) => {
// handle success
console.log(res);
});
} catch (e) {
// handle error
console.error(e);
}
};
putData = async (e) => {
e.preventDefault();
var data = {
id: 1,
name: "ndrohith",
};
try {
await instance({
// url of the api endpoint (can be changed)
url: "profile-update/",
method: "PUT",
data: data,
}).then((res) => {
// handle success
console.log(res);
});
} catch (e) {
// handle error
console.error(e);
}
};
deleteData = async (e) => {
e.preventDefault();
var data = {
id: 1,
};
try {
await instance({
// url of the api endpoint (can be changed)
url: "profile-delete/",
method: "DELETE",
data: data,
}).then((res) => {
// handle success
console.log(res);
});
} catch (e) {
// handle error
console.error(e);
}
};
render() {
return <>Home Page</>;
}
}
export default Home;
That's about all . Your axios instance has been created and can be configured according to your project.
Top comments (0)