Oct 7, 2022
GraphQL + REST API
Let's understand how we can combine the best of Graph QL with REST API to achieve the maximum results.
Author


Book a call
Table of Contents
Pre-requisite
- GraphQL
- React
Before Diving into the topic, let's understand what is GraphQL first.
What is GraphQL?
GraphQL is a query language for your API and a server-side runtime for executing queries using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
Why Use GraphQL over a Traditional REST API?
- One Endpoint
- Declarative Response
- Fewer Server Requests
- Auto Documentation of Queries
The mantra of GraphQL is - “Ask for what you want − and get it”.
GraphQL With REST
Calling REST APIs from a GraphQL client opens the benefits of GraphQL for many developers.
Now, let's see how we can use the existing REST APIs as GraphQL Query.
How To Use REST API in GraphQL?
There are many libraries to support the efficient way of querying data using GraphQL.
Like:
- Apollo Client
- URQL
- Relay
But for using REST API with GraphQL, Apollo client is the only package to support REST as of now.
How to Implement REST API in Apollo Client?
Let's get our hands dirty.
First, let's create a new React app.
We’ll create a new REST Client file.
For integrating the REST API, apollo-client provides a package apollo-link-rest to create a REST client.
Simple, right?!
Creating an App
Let’s create a simple to-do app to see how to do CRUD operations using REST API in GraphQL.
1. Writing the query to get all the to-do data from the backend.
We need to write a GraphQL query to get all the data.
Just two changes from the traditional query.
- @rest - it's added to denote a REST API
- path - to mention the path of the API.
2. Executing the GET ALL query and displaying the data.
3. Adding new todo data using the query.
4. Executing the Add Todo in the code.
To pass the values to the body of the API call, we can pass them inside the `addTodo` function as variables parameter. Inside variables, we can pass the data as part of the `input (bodyKey input in the query)` object.
5. Delete a Todo by id.
6. Executing the Delete todo in the code.
As simple as that 😎.
Instead of Converting the existing REST APIs into a GraphQL API, you can now directly integrate REST APIs with GraphQL queries.
Related Articles.
More from the engineering frontline.
Dive deep into our research and insights on design, development, and the impact of various trends to businesses.

May 18, 2026
Your Vibe Code Has No Memory. DESIGN.md Fixes That.
A single Markdown file called DESIGN.md gives your AI agent the design memory it lacks — keeping your UI consistent across every session.

May 15, 2026
Build vs Buy: Choosing the Right AI Strategy for Insurance Companies
Build or buy AI for insurance? Learn how to avoid vendor lock-in, lower AI operating costs, and build scalable, compliant insurance platforms.

May 15, 2026
Beyond AI Pilots: Building Production-Ready RCM Platforms for Denial Prevention, Coding Accuracy, and Smarter Billing
Build production-ready RCM platforms for denial prevention, coding accuracy, smarter billing, compliance, and scalable healthcare AI revenue operations.