Introduction to GraphQL

Get introduced to Graph QL, an open-source data query and manipulation language used to build APIs for any client-server architecture.

Client-server architecture

Developers frequently have to communicate with other systems to read or write data.

To establish communication between server and client, we need to know what can be requested, what data we need to send,and what data we can expect from the server.

An API is a set of definitions for building application software. It’s an agreement between the consumer (the client) and the producer (the server) through content (the request).

For example, a pizza application could ask the user what kind of pizza they want to order. The client would respond with a pizza topping (the payload). The pizza service would then respond with whether the order has been successfully created or not (the response).

What is GraphQL?

Most applications need to communicate with a server. It’s the responsibility of the backend to provide an interface to the stored data that fits an application’s needs.

GraphQL is a different approach to creating APIs. The client can indicate what data they need using GraphQL. A GraphQL server has a single endpoint and answers directly to the provided data rather than giving numerous endpoints that return predetermined data structures.

Type system, query language, execution semantics, static validation, and type introspection are all included in GraphQL. It allows us to read, write (mutate), and subscribe to data changes and real-time updates, which are most typically accomplished using Websockets. GraphQL servers can be written in JavaScript, Python, Ruby, Java, C++, and other popular programming languages.

History and adoption

In comparison to REST, GraphQL is a different way to construct an API that focuses on query and data manipulation. GraphQL was created by Facebook in 2012 before being published as open-source software in 2015.

Before Facebook open-sourced their GraphQL project, companies like Netflix and Coursera worked on similar ideas to make API interactions more efficient. For example, both companies envisioned a similar technology to let a client specify their data requirements. However, only Netflix managed to open-source their solution, called Falcor. After GraphQL was open-sourced, Coursera ultimately canceled Naptime, its own open-source project, and focused on supporting GraphQL. Today, GraphQL is used in production by companies like GitHub, Twitter, Yelp, and Shopify

Note: GraphQL is an open-source alternative for the client-server architecture.