+</div><p><strong>Version free:</strong> The shape of the returned data is determined entirely by the client's query, so servers become simpler and easy to generalize. When you're adding new product features, additional fields can be added to the server, leaving existing clients unaffected. When you're sunsetting older features, the corresponding server fields can be deprecated but continue to function. This gradual, backward-compatible process removes the need for an incrementing version number. We still support three years of released Facebook applications on a single version of our GraphQL API.</p><p>With GraphQL, we were able to build full-featured native News Feed on iOS in 2012, and on Android shortly after. Since then, GraphQL has become the primary way we build our mobile apps and the servers that power them. More than three years later, GraphQL powers almost all data-fetching in our mobile applications, serving millions of requests per second from nearly 1,000 shipped application versions.</p><p>When we built GraphQL in 2012 we had no idea how important it would become to how we build things at Facebook and didn't anticipate its value beyond Facebook. However earlier this year we announced Relay, our application framework for the web and React Native built atop GraphQL. The community excitement for Relay inspired us to revisit GraphQL to evaluate every detail, make improvements, fix inconsistencies, and write a specification describing GraphQL and how it works.</p><p>Two months ago, we <a href="https://www.youtube.com/watch?v=WQLzZf34FJ8" target="_blank">made our progress public</a> and released a working draft of the <a href="http://facebook.github.io/graphql/" target="_blank">GraphQL spec</a> and a reference implementation: <a href="https://github.com/graphql/graphql-js" target="_blank">GraphQL.js</a>. Since then, a community has started to form around GraphQL, and versions of the GraphQL runtime are being <a href="https://github.com/chentsulin/awesome-graphql" target="_blank">built in many languages</a>, including Go, Ruby, Scala, Java, .Net, and Python. We've also begun to share some of the tools we use internally, like <a href="https://github.com/graphql/graphiql" target="_blank">GraphiQL</a>, an in-browser IDE, documentation browser, and query runner. GraphQL has also seen production usage outside Facebook, in a project for the <a href="https://www.youtube.com/watch?v=S0s935RKKB4" target="_blank"><em>Financial Times</em></a> by consultancy <a href="http://red-badger.com/" target="_blank">Red Badger</a>.</p><p>“GraphQL makes orchestrating data fetching so much simpler and it pretty much functions as a perfect isolation point between the front end and the back end”
0 commit comments