GraphQL is a new architectural element that eliminates the need for frontend teams to repeatedly ask backend teams for new endpoints.
Created by Facebook, implemented in their mobile app in 2012 and open-sourced in 2015. It is rapidly becoming the standard for API-based data access.
Typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request. Apps using GraphQL can be quick even on slow cellular connections.
GraphQL allows front-end developers to query and mutate the data without having to make requests for custom endpoints to back-end developers.
GraphQL APIs are organized in terms of the data they provision, not endpoints. Developers can access the full capabilities of their data from a single endpoint. GraphQL uses types to ensure apps only ask for what’s possible and provide clear and helpful errors.
GraphQL’s dynamic query capabilities virtually eliminates an entire class of software development dedicated to parsing RESTful APIs to meet custom application development needs.
REST forces incessant coordination of efforts between front-end (client) & back-end (services) teams, which dramatically slows development & increases the stress level of all involved. GraphQL changes the game for both front-end & back-end teams.