GraphQL is literally the latest thing in IT technology. But if you do not know yet what this technology is, all its pros and cons, then this article was written especially for you.
GraphQL is a query language for API and an execution environment for those queries based on your data.
The pros of this query language include:
1. Accurate data sampling
With GraphQL you can send a query to your API and get exactly the set of data you need, no more and no less. It’s a really accurate and simple function.
2. Many resources and a query only
All necessary data can be obtained with a single request.
3. Compatibility with modern apps
It can be used to connect to the backend app and meet customer’s requirements. There is no need to allocate an individual clients API.
If a certain field is declared deprecated, the client is warned about it when that field is requested. And if it is no longer used, it can be deleted after some time.
Caching is a common problem and the GraphQL community is working to simplify it for their users. The Dataloader and Prisma libraries, which are built on GraphQL, were developed to solve such problems. But the problem with caching in mobile apps and browsers remains.
To the cons we can add:
1. Query efficiency
GraphQL allows users to query any number of required fields in any number of resources.
Being able to query everything the user needs is cool, but at certain levels of complexity such queries can slow down and greatly affect the performance of GraphQL apps.
2. Data mismatch
GraphQL and API have similar schemas, with small differences that translate into different document structures. This causes data inconsistencies between the server and the client.
3. Repetition of schemas.
In GraphQL, you cannot avoid duplication and repetition of code when building the backend, especially in schemes.
GraphQL is a great modern technology, but it has its pros and cons like everyone else so before you important decisions to use it you need to weigh the pros and cons. Since some API’s are not very efficient with GraphQL.