The first step to learning how to use any technology or framework is to understand the community it’s built for. A community shapes how the technology is evolved over time — they set the “norms”, and future iterations are tuned to their preferences and requirements. Similarly, understanding the ecosystem in which a technology is made also gives some context as to why it has certain features but not others.
GraphQL was developed by Facebook in 2012 as a way to simplify the method by which their mobile applications fetched data for the News Feed. It enabled developers to access different data for each version of the app without constructing different APIs for each. It increased flexibility on the client-side, that is, it permitted clients to define the structure of responses from the server.
The GraphQL framework essentially packages what would’ve been multiple REST endpoints into one query. In 2015, they spun it out as an open-source project after revisiting it during the release of Relay, another Facebook framework.
The GraphQL framework essentially packages what would’ve been multiple REST endpoints into one query.
The power that this framework provides to developers has drawn many different language communities to adopt it and build libraries, tools and extended frameworks around it like the reference implementation Graphql.js and the server libraries in Elixir, Go, Ruby, etc. We’ve also seen many corporations integrate the framework either into their public API or in the development of their own applications.
For example, GitHub’s most recent API is built using this framework and NBC News Digital developed three new digital verticals using GraphQL. Additionally, companies have created services for GraphQL such as the Apollo client by the Meteor Development Group (yes, that Meteor), and Graph.cool and Scaphold, which are GraphQL Backend-as-a-Service companies.
As its developer community grows and more companies advocate its use, we can only see GraphQL becoming an industry standard. Other than that, the power, adaptability, and ease-of-use that GraphQL promises are the main motivators for me to learn this framework. It may take some time before established corporations move from a RESTful API to a GraphQL one, but GraphQL is promising enough, in my opinion, that the switch will happen (unless some other, better, framework is introduced beforehand).
GraphQL Summit 2017, taking place this October in San Francisco, will showcase advancements in the framework, adoption, and community that will help predict its future growth.
In the meantime, follow along as I plan out and create a project using the GraphQL framework! If you have any ideas on what I should make, tweet me @sitara_ramesh or leave a comment down below. I will also post all the resources I used in a GitHub repo. If you have any more you’d like to add to the list, feel free to submit a pull request!