REST API
React
Web Development
JavaScript
Frontend Development
API Integration
Coding Tutorials

How to Use REST API in React

Listen to article
Deepak Tewatia
September 14, 2025
3 min read

Introduction

Using a REST API in React lets you get and send data easily. This guide will help you understand how to set it up step by step. First, we will install a library called Axios for making requests. Then, we will use the useEffect hook to fetch data when your component loads. Finally, we will store this data in the state using useState. This way, your app can show real-time information from the API.

What is a REST API?

A REST API (Representational State Transfer Application Programming Interface) allows different parts of software to communicate with each other. It uses standard HTTP methods, like GET, POST, PUT, and DELETE, to perform actions on data. This means you can fetch data from a server and send data back easily.

Why Use Axios?

Axios is a promise-based HTTP client for the browser and Node.js. It makes it simpler to send requests and handle responses. Getting started with Axios is quick, and it's easy to use in React applications. Here's how you can install Axios:

npm install axios

Setting Up Your React Component

Now that we have Axios installed, let’s create a React component that fetches data from an API. First, you will need to import the necessary hooks and Axios.

import React, { useEffect, useState } from 'react';
import axios from 'axios';

Next, set up your component and define its state. Here’s a simple example:

const MyComponent = () => {
  const [data, setData] = useState([]);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await axios.get('https://api.example.com/data');
        setData(response.data);
      } catch (error) {
        setError(error);
      } finally {
        setLoading(false);
      }
    };
    
    fetchData();
  }, []);

In this code, we declare three pieces of state: data, loading, and error. The useEffect hook runs after the component mounts, calling the fetchData function. This function uses Axios to get data from a URL. If successful, it sets the data; if there is an error, it saves the error message.

Using the Fetched Data

Once you have the data, you can display it in your component. Here’s how you can do that:

return (
  <div>
    {loading && <p>Loading...</p>}
    {error && <p>Error fetching data: {error.message}</p>}
    {!loading && !error && (
      <ul>
        {data.map(item => (
          <li key={item.id}>{item.name}</li>
        ))}
      </ul>
    )}
  </div>
);

In this part, we check if the data is still loading or if there was an error. If everything is fine, we map through the data array and display each item in a list.

Making POST Requests

You can also send data to the server using a POST request. Here’s how you can set up a function to handle that:

const postData = async (newItem) => {
  try {
    const response = await axios.post('https://api.example.com/data', newItem);
    setData([...data, response.data]);
  } catch (error) {
    setError(error);
  }
};

In this function, you send newItem to the API. If successful, you add the new data to your existing data state. You will call this function when you need to add a new item, like from a form submission.

Conclusion

By using a REST API with React, you can easily fetch and send data. Axios makes this process quick and straightforward. Remember to handle loading states and errors to improve the user experience. Now you have the basic tools to work with REST APIs in your React applications. Happy coding!

Comments

Y
You
Commenting
0/2000
Loading comments…