Join #headless
on Slack

GraphQL

GraphQL is one API option for Headless Wagtail

GraphQL is a newer API technology than REST. Unlike REST, GraphQL isn't an architecture; it's a data query language that helps simplify API requests. GraphQL was developed by Facebook (now Meta) and open sourced in 2015. It's a newer technology that was designed to provide more flexibility and efficiency than REST. Besides REST, GraphQL is currently the only other API technology that is recommended for Headless Wagtail. Let's have a look at the current upsides and downsides of choosing GraphQL.

Upsides of GraphQL

  • Changes can be made more rapidly on the client-side of a project without substantial backend updates.
  • Queries can be more precise and efficient without over- or under-fetching data.
  • You can use fewer queries to retrieve data that would require multiple endpoints in REST.
  • GraphQL APIs use fewer resources with fewer queries.
  • GraphQL provides options for analytics and performance monitoring.

Downsides of GraphQL

  • GraphQL is not natively supported in Wagtail.
  • You will need to install a library package to use GraphQL.
  • There are currently fewer tools and resources available for supporting GraphQL.
  • Fewer developers are familiar with GraphQL.

GraphQL libraries compatible with Wagtail

wagtail-grapple by GrappleGQL
strawberry-wagtail by Patrick Arminio

News

4 April 2017

Getting Started with Wagtail and GraphQL

I was recently tasked with adding a CMS to an existing React application using GraphQL and Python+Django on the back end.

14 June 2018

Supporting StreamFields, Snippets and Images in a Wagtail GraphQL API

GraphQL is a promising new technology. Yet implementing it in Wagtail comes with its fair share of challenges. This article helps you to overcome them.