With its introduction in 2015 by Facebook, GraphQL has witnessed tremendous growth in terms of community support over the years.
What is GraphQL?
GraphQL presents itself as an alternative to REST API for data query language and addresses all the limitations of it as well.
What benefits does it bring?
Solving the problem of over and under fetching of data that the REST had. In GraphQL, the user defines the data structure that is needed in the result and the server returns the same in the specified format. Thereby granting the user complete control over data that is exactly needed. And also it has the ability to gather data from multiple resources as well. The availability of GraphQL servers for multiple languages is an added advantage as well.
Why the need for GraphQL?
Let's take an example of a housing tower consisting of 'x' number of floors. Now you want to list the name of occupants staying on each floor. Having large sets of data being fed and accessed all the time definitely slows down the performance of your app or web application. The reason? Having multiple endpoints to access the database. This is where the GraphQL steps in, it provides a single endpoint that takes in queries and then structures the data according to the requirements specified.
GraphQL acts as a layer between the client and the server and handles all the requests and responses.
Benefits that GraphQL provides :
- Requires fewer lines of code to extract data.
- It doesn't require multiple calls thereby avoids wastage of resources.
- Accommodates any changes made hence doesn't need versioning.
- It's backward compatible with older versions.
- Flexible in terms of database usage ( Can access multiple types of database in a single request).
GraphQL also allows you to refer to other fields as objects with the help of a sub-selection of fields. This gives the user the ability to fetch loads of relevant data in a single request. Whereas with REST you need to make multiple roundtrips and also pick the relevant data from the outcome. It's an open-source API and hence can be used with any platform or library using with the client or making your own calls. Performance is always a priority for GraphQL. With the help of RESTful services, it can expose and be used as a gateway to run queries whilst maintaining REST endpoints in a few cases.
GraphQL is being implemented by all sizes and types of mobile app and website.The notable users of GraphQL and their application scenario.
1. Coursera : Initially implemented JSON API as data that needed to be processed was quite small at the beginning. But as more courses and features started to add up , a file of size about 1mb needed to be downloaded before you could view the website , affecting the performance of the website. Coursera had managed to migrate 1000 REST endpoints by using GraphQL as layer above. This reduced their round server trips and load times on clients side.
2. Twitter : With growing number of active users on twitter and increase in activity on web and mobile applications. Using traditional REST API started costing server speed as there were alot of roundtrips and several individual api calls to fetch the data. To resolve this issue twitter implemented GraphQL to reduce cost of query execution and bring in lighter app for mobile platform in form of twitter lite.
This just a couple of examples where GraphQL has proved to resolve the issue for many brands. The issues such as client and server being separated and required separate updation, each update required versioning of the API , over fetching of data resulted in increased load times and server latency. With GraphQL all this limitations are addressed and that’s where we come in. Every Web or mobile app requires customized GraphQL API , and that’s exactly what we have to offer.
You can always reach us via email [email protected] or drop us a message on the website or even get in touch with us via social media for any queries or details.
W3villa Facebook | W3villa Linkedin