This page gives you a quick overview about GraphQL - why we use it, why you should learn it and how to get started.

It's state of the art

Facebook open-sourced GraphQL in 2015, after using it internally long before: https://code.facebook.com/posts/1691455094417024/graphql-a-data-query-language/. Since then, renowned companies like Coursera and Github, but also the Financial Times use it to build open, efficient and developer-friendly APIs.

Learn more about it from our recent 3-part webinar:

It's language independent

Like REST, using a GraphQL-API allows you to use any programming language you want. There are various client side implementations, but it's also easy to build the queries and issue the underlying REST call directly. Learn more about using GraphQL from Java as an example here: GraphQL in Java.

It's easy to understand

GraphQL has only two major concepts:

  • A query allows you to formulate precisely what arguments to return and what filters to apply for this
  • A mutation allows you to apply patches or to delete objects. Again, you can combine patches or define precisely what arguments to return.

It's interactive

We included a nice tool called graphiql (see https://github.com/graphql/graphiql) into LeanIX. With this, you can interactively develop and test your queries directly in the workspace, without relying on curl or other tools. The following screenshots show a nice example:

Quick Overview

a) Just type "{" and " - " to get an overview of available queries

2490

Tab Completion

b) Use tab completion to get your first query within seconds

2490

Prettify

c) Press "Prettify" to format your query, and "Play" to get your first result

2490

More Attributes

d) Now subsequently use more attributes and relations, or copy a query from GraphQL Basics

2490

Docs link

e) Finally, use the Docs link at the right-hand side to browse the available queries and mutations interactively:

2490

It's extremely powerful and efficient

Comparing it to a classical REST-API, the main advantage of GraphQL is its ability to formulate queries and mutations in the most efficient way:

  • Developers can summarize multiple API calls in one. Doing so allows them to focus on the business logic instead of combining call results, handling different transactions, ...
  • In particular for large reports or analytics, GraphQL allows increasing performance dramatically. Now, you can transfer exactly the attributes you require via the network, with no extra latency. Further, GraphQL aligns perfectly with an underlying Graph Database to answer queries that span multiple relations, e.g. evaluating Technology Risk transitively.