![]() |
Imagine a React.js world where you can specify exactly the data you need and it flows effortlessly tailored to your needs, and react can efficiently update the DOM as and when needed. No more under-fetching or over-fetching of data or wrestling with nested JSON structures. This dream becomes a reality with the use of GraphQL the rising star of API technology. This article aims to help you integrate the GraphQL API with your React project. Table of Content
What is GraphQLGraphQL is a query language and runtime for APIs (Application Programming Interfaces) that was developed by Facebook and later open-sourced in 2015. GraphQL allows clients to specify the shape and structure of the data they require, enabling efficient data fetching and reducing the need for multiple round trips to the server. This approach makes it particularly well-suited for applications with complex data requirements, such as those found in modern web and mobile apps. Additionally, GraphQL’s introspective nature allows clients to explore and understand the capabilities of the API, making it easier to work with and adapt to changing requirements.
Why GraphQLIn the traditional method of using the RESTful approach, we request specific data points which often leads to over-fetching or can sometimes lead to under-fetching. The GraphQL declarative method (we mention the fields we need from the server) of data fetching significantly improves performance over a REST API. For example, consider a webpage that displays the shelter names of pets in the shelter and we also want to get the name of the pet and its image. USING REST, the page might need to:
We can obtain the above in a single query to a single endpoint using GraphQL, the code for which might look something like this: query GetPetsByShelter{
RequirementsGet the following installed on your local machine before we begin to code:
How to Integrate GraphQL APIs into Your React.js ProjectsThere are generally three ways to integrate GraphQL APIs into a React.js Project. These are:
Step 1: Set Up a React ApplicationOpen your command prompt or terminal and type the below command. The below command will create a basic react app for us with the basic configurations to help us get started npx create-react-app graphql-react-app After everything’s done, go to the folder you just made. cd graphql-react-app Now, get things going by typing this: npm start Your react app’s up and running at http://localhost:3000 Step 2: Install Required PackagesTo get GraphQL talking to your React app, we’ll use a handy helper called Apollo Client. It’s like a translator for GraphQL and React, making life easier. npm install @apollo/client graphql Step 3: Using Apollo, Configure the Apollo ClientNote: This step is only needed for the Apollo Client method, not for Fetch API or Axios. Apollo Client is a powerful GraphQL client that works seamlessly with React, You can think of the Apollo Client as your GraphQL interpreter for React. We can configure our Apollo Client by specifying the endpoint // src/index.js The above code initializes ApolloClient for GraphQL with the GraphQL API endpoint and caches it. The ApolloProvider component comes under the @apollo/client package. It uses the ApolloProvider component to wrap the App component so that GraphQL functionality is available within the whole App component (meaning the Apollo Client instance will be provided to all the components in our App). Finally renders it in the root element within the HTML document. With our Apollo Client now ready we can now use it to fetch and update data in our React App. Step 4: Create GraphQL QueriesTo write our GraphQL questions or queries use the gql tag from the graphql package. It is like writing a clear request for the data you need. Here’s an example, Let’s create a simple query to fetch a list of users // src/queries.js The explanation of the above code: The gql function is imported from the @apollo/client package. The gql function is used to define gql queries, mutations, and fragments to integrate in a javascript code. While using the Apollo Client this function is used to parse the GraphQL query strings and make a query document that can be understood by the Apollo Client so this sort of brings in a tool that helps the Apollo Client understand your GraphQL questions. Defining a GraphQL query: You write your query using the gql tag like filling out a form. GET_USERS is created as a constant with the gql tag . This query requests the data from the GraphQL API with the required fields, here it’s querying for users. With fields such as ID, name, and email, you can specify any other fields you require. Query Structure:
Additional info: You should keep your queries separate in file queries.js to make your files cleaner and easier to use. Step 5: Fetch Data in React ComponentsApollo Client MethodUsing Apollo Client to fetch data in your React application // src/components/UserList.js We can use useQuery to fetch data within the react component named UserList from the GraphQL API in the above way as written in the code. The code is explained: Importing the required dependencies:
UserList component: This part of the code creates a list to show the users. It is a functional component that utilizes the useQuery hook to execute the GET_USERS query. The hook returns an object with properties such as loading, error, and data.
Key points:
Fetch APIUse the fetch API in a React Component: import React, { useState, useEffect } from 'react'; In the above code :
Axios LibraryUsing the axios library if we want to fetch data follow the below code: import React, { useState, useEffect } from 'react';
Step 6: Display Data in Your React AppYou have to import the UserList or other components that use GraphQL API into your react application to display the fetched data. // src/App.js The explanation of the above code: The app.js is the entry point that controls the overall layout and structure of your app you can think of App.js as the headquarters of your React app. It’s where you decide how everything fits together.
Inside App you use JSX (a special way to write HTML-like code in React) to design how the app will look like
Making it all work together: By placing the <UserList /> within the App component’s JSX, the UserList component will be rendered whenever the App component is rendered. This ensures that the data fetched using GraphQL queries in the UserList component will be displayed as a part of the application’s interface. Step 7: Run Your ApplicationRun npm start in your terminal or command prompt to start your react application and check if it properly fetches and displays the data from the GraphQL API. npm start ConclusionCongratulations you have successfully integrated GraphQL API with your React js application using Apollo Client. You can now leverage the power of GraphQL in dealing with APIs and efficiently manage your react components for different APIs. The integration of GraphQL helps in creating more efficient web applications. By adapting GraphQL into your React.js projects you are using the latest popular technology in API querying. FAQsWhy use GraphQL over traditional REST APIs?
What are the requirements before integrating GraphQL into a React.js project?
What are the three ways to integrate GraphQL APIs into a React.js project?
What is the significance of integrating GraphQL with React.js projects?
|
Reffered: https://www.geeksforgeeks.org
GBlog |
Type: | Geek |
Category: | Coding |
Sub Category: | Tutorial |
Uploaded by: | Admin |
Views: | 12 |