Discovering and learning using GraphQL and Relay.
GraphQL is a query language, built on top of a custom schema using a strong type system, that allows to express client-specified queries, to validate them, while introspecting the schema. A GraphQL query executor will then deliver data in the shape asked by the client, while validating the data it retrieves from the required datasources. GraphQL can retrieve data from any kind of datastore, being it a relational SQL Server database, a graph DB or a key-value datastore such as Redis.
- Exploring GraphQL video, 28 min. (Lee Byron, 24.08.2015) Motivations for GraphQL, some performance metrics and description of GraphQL design principles: strong type system, expressing shape of expected data, returned data in this shape, and validated according to the schema
- Introduction to GraphQL (Nick Schrock, React blog, 01.05.2015) Announces Relay open-source publication, while explaining what GraphQL is, its features and advantages, and differences to REST-style and Ad Hoc server endpoints
- Thinking in GraphQL Interesting article within Relay Docs, which gives an overview of Relay's features on top of GraphQL, in the service of React
- Data fetching for React applications at Facebook video, 26 min. (Dan Schafer, Jing Chen, 28.01.2015) Synthetic overview of GraphQL and Relay's features: query colocation to React components, pagination, query validation, mutations, optimistic updates and error handling.
- Getting started with GraphQL Installing and getting the GraphQL NodeJS server running
- Walkthrough of GraphQL (also available as a single page in GraphQL's GitHub repo) A good explanation of GraphQL's schema, type system and queries
- GraphiQL A graphical interactive in-browser GraphQL IDE: allows to browse the schema and its documentation, write and validate queries, and of course, browse results; un composant déterminant pour l'adoption d'un schéma GraphQL au sein d'une équipe
- GraphQL Relay.js Test-suite The test suite that comes with GraphQL Relay.js source code is an interesting example to study, it implements the StarWars schema, types, queries and mutation found in the reference documentation
- Medium › GraphQL Hub Serie of tutorials deepening usage of the type system and describing a few common use cases.
- GraphQLDateTimeScalarType a Gist with a custom DateTime type definition for a date and time with timezone, that serializes to JSON in ISO-8601 format (CoffeeScript)
- GraphQL API Reference › Main entry point Given a schema and request string, the
graphql
function lexes, parses, validates and executes a GraphQL request - GraphQL API Reference › Type system The document I'm refering the most often to
- GraphQL Specification Draft specification of the GraphQL query language; useful to understand inner workings of GraphQL
- Relay Cursor Connections Specification Specification of the
Connection
(Edges
,PageInfo
) andEdge
(Node
,Cursor
) types; useful to kwow the pattern and the forward and backward pagination arguments, which you might need even when not using Relay.
- Part 7: Deep Dive into GraphQL Type System describes interfaces, union and input types with a slight more context than the GraphQL API reference does
- GraphQL Mutations James Burnett, 09.09.2015 concise wrap-up of the mutation types, around a simple example, that comes along a source repo HurricaneJames/article-graph on GitHub
- see also the Medium › GraphQL Hub mentioned above