What is it
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more.
When to use it
GraphQL should only be used on a per-application basis and when it makes sense to have an application-specific gateway.
Example of cases when it might make sense:
- Complex data structures with a lot of hierarchical relations.
- Data structures with a lot of fields and only a subset might be needed by the clients.
Avoid cross-application dependencies
We currently advise against building separate applications on top of the same GraphQL API, since we are trying to avoid overambitious API gateways with unclear team ownership.