All notes

Why it is needed


REST, an acronym for Representational State Transfer, is an architectural style rather than a formal protocol.

A number of weaknesses in typical REST systems:

vs Ad Hoc Endpoints


GraphQL represents a novel way of structuring the client-server contract.

Servers publish a type system specific to their application, and GraphQL provides a unified language to query data within the constraints of that type system. That language allows product developers (e.g. the advanced FE developers) to express data requirements in a form natural to them: a declarative and hierarchal one.


The reference implementation, graphql-js provides a library in JavaScript that is the basis for full GraphQL implementations and tools. For those using an express server, it is recommend to use express-graphql to provide a GraphQL server.