GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.

GraphQL is a syntax that describes how to ask for data, and is generally used to load data from a server to a client. GraphQL has three main characteristics:

  • It lets the client specify exactly what data it needs. - It helps you to reduce/optimize API instead of creating all methods by all the use cases.
  • It makes it easier to aggregate data from multiple sources.
  • It uses a type system to describe data.

Example ) Simple query 

{
  allMembers {
    members {
      name
    }
  }
}

Query Result

{
  "data": {
    "allMembers": {
      "members": [
        {
          "name": "Chun"
        },
        {
          "name": "John"
        },
        {
          "name": "Fred"
        },
        ...



Example 2) Query with condition

  members(id: "s20181031xyz") {
    name
    title
  }

Result

{
  "data": {
    "member": {
      "name": "Kenny",
      "title": "Senior Software Engineer"
    }
  }
}


GraphQL supports various programming languages 

  • C# / .NET

  • Clojure

  • Elixir

  • Erlang

  • Go

  • Groovy

  • Java

  • JavaScript

  • PHP

  • Python

  • Scala

  • Ruby

You can see some same codes at https://graphql.org/code/ in various programming languages, and reference query example at https://alligator.io/graphql/introduction-graphql-queries/