GraphQL

GraphQL is a powerful query language for APIs that offers a flexible approach to fetching data from a server. Unlike RESTful APIs, which often have fixed endpoints, GraphQL enables clients to specify precisely what data they require and how it should be structured.

Here's a simple example of a GraphQL query:

query GetPosts {
  posts {
    id
    title
    content
  }
}

In this case, the client receives only the data it requested.

GraphQL also allows for fetching data from multiple sources in a single request:

query GetPostsWithComments {
  posts {
    id
    title
    content
    comments {
      id
      content
      author
    }
  }
}

This decouples the client and server logic, enabling the server to focus on providing atomic data sources while allowing the client to compose them as needed.

Additionally, GraphQL addresses API compatibility issues by transforming the backend into a database, where the query language used is GraphQL instead of SQL.

GraphQL Servers

Popular GraphQL servers includes GraphQL.js, apollo and GraphQL Yoga.

GraphQL Clients

There are apllo-client and graphql-hooks, but for simple queries fetch is good enough.