In this chapter, we'll introduce a new query language called GraphQL. The traditional API definitions have failed to address the under-fetching and over-fetching APIs. An under-fetching API is an API that provides a minimum set of details for a given request. The drawback of this is that a developer should always create a new API or update the existing one. To overcome this, they can provide extra data that the clients can ignore safely. This causes another side effect; that is, it increases the payload size of the response. This situation is known asĀ over-fetching. An over-fetching API provides unnecessary or unwanted data for clients. The response size is crucial when there are limitations regarding network bandwidth when designing APIs for clients.
GraphQL is a query language that solves this problem. In this chapter, we'll learn how a client can efficiently query data from an API using GraphQL. As with every framework, GraphQL also has a few limitations, but its positives outweigh them.
In this chapter, we'll cover the following topics:
- What is GraphQL?
- Over-fetching and under-fetching problems in the REST API
- GraphQL basics
- Creating GraphQL clients in Go
- Creating GraphQL servers in Go