- We don't know which fields each consumer needs from an endpoint
- Developer experience is not great
- API is not very easy to use
- Documentation is lacking
- No good dev playground
- Pagination is slow for large customers
- Difficult to deprecate fields from endpoints/entire endpoints
- Requires updating entire API's version
- Impossible to know which fields are actively being used
- Clients can compose requests as suitable for them
- Reduce # of API requests for fetching related data
- Clients fetch only what they need and no more
- GraphQL is declarative and strongly typed
- Documentation + deprecation are first-class citizens
- Can even auto-generate deprecation documentation
- Design API to match behaviors/use cases, not data
- Public & private API can be merged into one, which makes us develop with API first mentality
- New features would get public API for free
- GraphQL has awesome tooling!
Made with Slides.com