Home > ReactJS > How to Make Axios GET Request in React?

How to Make Axios GET Request in React?

In this tutorial, we will learn about Axios and how we can make a GET request using it in react application. It is a very good npm package to handle HTTP requests.

You can make a GET request to retrieve the data, a POST request to create the data, a PUT request to update the data, and a DELETE request to delete the data using this Axios library.

But in this tutorial, we will focus on Axios GET request to get the data from API and show it on react application. We will also work with some examples to better understand.

Let’s get started!!!

Axios HTTP GET Request in React

First, we have to install the Axios package using the npm. We will see some basic examples of Axios GET requests and we will also use the Axios API to make GET requests.

Install Axios From NPM

You have to run the following npm command to install the Axios package in your project. Make sure you are in the project directory.

This command will install all the dependencies for the Axios package, so you can import it into your react component and then use it.

Command to install the axios package
Syntax to import the axios package

Axios GET Request in Class-Based Component

In this method, we will use a class-based react component to make a GET request using the Axios package. If you want to make a GET request immediately after rendering the component successfully then use the componentDidMount() lifecycle method.

The componentDidMount() method runs only once when the component is already rendered in the DOM (Document Object Model). You can say this method is the last step of the mounting phase of react component.

In the above example, we make an HTTP GET request using the Axios package in the componentDidMount() method. It will return the JSON object as response data and then we set it into the employees state.

In the render() method, we make a simple table to print that result. So we use the map() function to loop through employee data in react component and print it into the table. You can use the react datatable and bootstrap to make a good presentable list of employees.

Axios GET Request in Function-Based Component

Now we will use a function-based react component to make GET requests using the Axios. In the function-based component will use the react hook (useEffect()) instead of lifecycle method to run the Axios request.

The useEffect() hook work same as componentDidMount() and run when the component loads. You can pass the second parameter as an array of dependencies so the hook determines when need to run. If you pass the empty array ([ ]) then the hook only will run once when the component is rendered.

In the above react hook example, we use the useEffect() hook to make HTTP GET requests using the Axios. First, we import the useState, and useEffect from react and then import the Axios package.

Then we make the Axios GET request in the useEffect() hook and set the response in the state using the useState hook. And final print the data using the map() function.

Axios GET Request with Error Handling

In the above examples, we used only then() promise to return the response and not handle any error if there exists. So now in this example code, we will use the catch() promise method after the then() promise.

The above example will send the HTTP GET request with Axios and then use the then() promise to return the response data and set it into the state.

But what if the request returns errors and you want to know what is wrong. So for this purpose we used the catch() method after the then() promise method. It will return the error message. You can console the error or set it into the state to print it on the front end.

Axios GET Request with HTTP Headers

Now we will see how we can send the Axios GET request with HTTP headers in react component. To send the HTTP headers in Axios request, you have to pass the second parameter as the header object.

You can see in the above example, that we set the Authorization header in the headers constant and then pass it into Axios request as the second parameter. You can also pass the custom HTTP headers in the request.

Axios GET Request Using async/await

In this method, we will use async and await javascript expressions instead of using the then() promise method. First, we will use async before the function name and then make a GET request in the function using the await expression.

The above example sends the GET request using the Axios with await expression. It means the function will not proceed further until the request gets a response.

When the promise returns the response then the function will continue to set the state for employees state. The async and await expression you can use with any function that you want to wait for a response before proceeding with further action.

Axios GET Request Using Axios API

All the above examples you see simple ways to use the Axios package in react to make HTTP GET request. Now we will see how to make GET requests using the Axios API.

The Axios API is the same way to make an HTTP request, you just have to pass the relevant config data to Axios like method, URL, response type, etc.

The responseType parameter is based on your requirements, which means in what type of form you want to get a response from the request.

Conclusion

So in this tutorial, you learn about Axios and how to make an HTTP GET request using it. We also covered using of Axios in class-based components and function-based components.

Furthermore, you see how to handle errors with Axios and use the async/await expression. Also, send the HTTP headers in Axios GET request from react component.

If you have any questions or doubts or suggestions, please do let me know in the comment section. I would appreciate and respond to you as soon as possible.

Photo of author

About Aman Mehra

Hey there! I'm Aman Mehra, a full-stack developer with over six years of hands-on experience in the industry. I've dedicated myself to mastering the ins and outs of PHP, WordPress, ReactJS, NodeJS, and AWS, so you can trust me to handle your web development needs with expertise and finesse. In 2021, I decided to share my knowledge and insights with the world by starting this blog. It's been an incredible journey so far, and I've had the opportunity to learn and grow alongside my readers. Whether you're a seasoned developer or just dipping your toes into the world of web development, I'm here to provide valuable content and solutions to help you succeed. So, stick around, explore the blog, and feel free to reach out if you have any questions or suggestions. Together, let's navigate the exciting world of web development!

Leave a Comment