GraphQL vs REST

Last updated 9 October 2021

GraphQL has been introduced as a revolutionary alternative to REST APIs. However, it has its pros and cons. In some scenarios, GraphQL will be a better solution, but you might also see that REST APIs are still preferred in some other situations. This article will walk you through the fundamental differences between GraphQL and REST APIs so you can decide which one is the most suitable for your project.

Even though GraphQL and REST APIs follow the same set of constraints, they have some differences. A REST API is an architectural concept for network-based application. On the other hand, GraphQL is a query language that operates over a single endpoint using HTTP. In GraphQL, nodes represent objects which are defined in the GraphQL schema, and edges represent the relationship between nodes. Also, each object has a resolver that does the business logic and returns the data requested.

Let's say a user makes a request to a GraphQL server. The server receives the request and passes the information to the query root. The resolver then executes every field on the requested object, and it returns a key-value map. The value of this key-value map can be a string, number, or another key-value map. If GraphQL finds values which have another key-value map, it continues this process until only a string or number is returned. In the end, the server responds with a nested object as requested by the user.

Where does GraphQL outperform REST APIs?

In REST API, each endpoint will always return a full set of data when it receives an HTTP request. For example, if you only want to get a subset of data, you need to have another endpoint because you cannot limit the fields returned by an endpoint. This phenomenon is called over-fetching. GraphQL, on the other hand, uses its query language to return the data exactly what requested.

Once you know how to use it, GraphQL is very performant because you can only fetch the data that you need. Thus, you can limit the amount of processing required and reduce the time needed to make a network request.

Where does REST API outperform GraphQL?

REST API outperforms GraphQL in terms of maturity and learning curve. It has become the industry standard in developing APIs. Since it has been around for a while, the community and documentations are widely accessible and available. So, learning REST API is easier compared to learning GraphQL.

Conclusion

In conclusion, GraphQL indeed has a shallower learning curve compared to REST APIs. However, that learning curve is worth it as you can get the advantages of utilising GraphQL in your application. The performance of your application will increase because you don't have to transfer a large amount of data on every request.