About GraphQL GraphQL is a query language and runtime engine. A query language describes how one can communicate with an information system. A runtime is responsible for returning data for queries. GraphQL was developed as an alternative to REST. The difference is that in REST, we collect data from many endpoints, while each endpoint always returns the same set of data. In contrast, GraphQL uses one endpoint that only returns the necessary data each time. GraphQL provides data in a predefined schema. The schema defines what queries are allowed and what types of data can be fetched. Knowing the schema before querying, the client can be sure the server will be able to respond to the query, and the client can predict what will be returned. One does not need to fetch the entire schema – you can fetch only the selected fragment. GraphQL also has some limitations, for instance, it is difficult to cache data and transfer file-like data.