Hello! Today we are going to talk about GraphQL and its enormous benefits.
For starters, and in case you are not familiar, GraphQL is a query language. In turn, a language is a system shared by two parts that allows them to communicate with each other.

GraphQL was born then as a data query protocol originally developed by Facebook for internal use. Since 2015 it exists in an open source version that has driven its development and that has generated many advantages and benefits. As the majority of Facebook users, we have already used GraphQL possibly without knowing it.

In applications, data query protocols are essential for obtaining all kinds of reports and information. REST is the most widely used mechanism, but GraphQL has grown a lot as an alternative that better addresses the new market needs.

GraphQL allows us to ask and wait for a predictable answer, for example queries in a database. The main improvement that it proposes with respect to REST is optimization, in addition to transferring information from the server to the client.

The essential objective of GraphQL is to offer customers a more direct, simple and efficient way to obtain the data they require, through a powerful and dynamic protocol.

One of the most important advantages of GraphQL is that it can be implemented in more than 20 languages due to its nature.

Currently, its expansion has allowed hundreds of apps and companies to adopt this protocol as the basis for their queries, including, for example, Shopify, Twitter, and even media such as the New York Times, the Financial Times, among many others.

GraphQL is not a library or framework, it is a query language that can be used interchangeably in different programming codes, including some of the most used ones such as JavaScript, Java, PHP and Python.

Which companies use GraphQL

GraphQL has been used by teams of all sizes, in different environments and languages. The most recognized are Facebook, Pinterest and Shopify.

Usage examples

1
2
3
4
5
6
query {
user {
name
age
}
}

And the answer in JSON (JavaScript Object Notation) format that we will receive:

1
2
3
4
5
6
{
"user": {
"name": "Juan García",
"age": 29
}
}

As we see, the nature of GraphQL makes it incredibly easy to understand what is happening at all times, since we are basically writing JSON objects without their values, getting the answer to the query.

Let’s give another example to illustrate another type of query:

Suppose we have a blog and want the home page to show the latest posts. To accomplish this, we need to search for posts, so we’ll probably do something like this:

GET /api/posts

1
2
3
4
5
6
7
8
9
10
11
12
[
{
title: "cooler post",
subtitle: "...",
date: "07/05/2020",
},
{
title: "cooler post",
subtitle: "...",
date: "06/05/2020",
},
];

Now, we are going to show you the differences and benefits of GraphQL.

Differences between ApiRest and GraphQL: 5 aspects to consider

Efficiency

Mainly it differs from REST, because the latter requires making a call for each data query, whereas in GraphQL a unique request is used, through which you can access information from databases.
This translates into a more direct and simple environment, in addition to saving the consumption of a large amount of resources, which are often necessary in REST. Furthermore, with GraphQL you have a cleaner and more direct layering scheme for the connection between servers and clients.

Simpler data collection

In REST, it is common that we have to face problems such as data over-recovery: receiving more information than we really need, since it is more difficult to obtain only some specific fields. This implies an excessive consumption of resources and, as a consequence, a greater response time.
For example, if we want to know the first last name of a group of users, but the full name is in the same field, REST gives us the full name and then we have to filter the last name, which is impractical.

Specific information

Another common problem is under-recovery or underfetching, that is, receiving less information than we need.
For example, we have a database with information on employees and we want to know names and types of contracts. If a single instruction does not generate this information, different calls have to be made for each field.
GraphQL comes to solve this problem, optimizing these functions through parameters that allow to generate more specifically, from unique calls, all the data that is needed.

Less chaos

GraphQL is also designed to order chaos in API manipulation, through a well-defined protocol that any engineer can easily learn to handle quickly. Through this environment complications are avoided.

Lower operating cost

This has generated great savings for companies, since they reduce development costs and obviously accelerate internal processes.
In summary, there are many reasons why GraphQL is such a popular protocol today. Although Rest previously had a clearly predominant role in the market, technologies are changing and so are the choices of users.

If your organization is interested in implementing projects with GraphQL in the hands of experts, we invite you to contact us.

Contact us for new project o hire developers on-demand! https://nextdots.com/contact-us