GraphQL

A Query Language for API that is NOT tied to any specific database or technology or network protocol

Client controls the content of the response

GraphQL Specifications

Flexible queries

  • Client tells server what it needs
  • Avoids over fetching
  • Lesser network overhead

HTTP Verbs

Benefits

  • No over- and under-fetching by clients
  • Application developers are in control
  • Documentation available in the form of Schema
  • Error responses are detailed

Disadvantages

  • Performance challenges with complex queries
  • Web caching is not as straightforward
  • Steeper learning curve compared to REST

General implementation

HTTP Verbs