This in-depth article introduces the concept of discriminated/tagged unions in GraphQL and how to leverage them to write more extensible applications. The article includes examples of GraphQL unions and how they are represented as tagged unions at runtime. Kevin Saldaña also discusses ReasonML and demonstrates the power of variants and pattern matching in Reason. He explores the power of Hindley-Milner type inference and pattern matching, which can be combined to efficiently write highly type-safe applications.
This article provides insight on Vasil Vasilich’s experiments with GraphQL in Flutter, exploring the various tools available to find the best toolset for high performance. The blog demos how to quickly build a dummy Flutter app as a measure to test various tools. It takes a look at artemis, graphql-flutter, and the js-graphql-intellij-plugin, resulting in a stable approach with GraphQL with the full extent of types and autocompletion.
Follow along in this tutorial where Rohit Pandey from Expedia Group explains how to stream binary data using GraphQL. He includes a working demo of file upload and resources on using apollo-graphql with the hapi node.js framework on Repl.it and CodeSandbox. Handle multiple file uploads as well as read/write the file stream to disk in this tutorial.
Tools and Open Source
Villus is a quick GraphQL client that is simple at its core yet still contains useful abstractions for queries, mutations, and subscriptions. Villus lets you use the composition functions API, higher-order components, or the raw client and still have access to all their features, while keeping the package size under just 3kb.
Saleor is an open source headless, GraphQL-first e-commerce platform built with Python, GraphQL, Django, and ReactJS. You can see their latest milestone, Saleor Commerce on Product Hunt here and learn how to use their GraphQL API to access all data from any web or mobile client for your dynamic online store.
Banana Cake Pop is a brand new GraphQL IDE which works well with Hot Chocolate (a .NET GraphQL server) and any other GraphQL server. Banana Cake Pop is still in preview and seeking feedback in their slack channel. Banana Cake Pop uses 2-phase introspection to tune the IDE to the GraphQL features that are supported by a GraphQL server. With 2-phase introspection Banana Cake Pop does not limit you to a certain GraphQL spec version but checks for certain features like repeatable directives or subscription support.