GraphQL
A Query Language for API that is NOT tied to any specific database or technology or network protocol
Client controls the content of the response
GraphQL Specifications
Flexible queries
- Client tells server what it needs
- Avoids over fetching
- Lesser network overhead
Benefits
- No over- and under-fetching by clients
- Application developers are in control
- Documentation available in the form of Schema
- Error responses are detailed
Disadvantages
- Performance challenges with complex queries
- Web caching is not as straightforward
- Steeper learning curve compared to REST
General implementation