This project is a POC to demonstrate the power of GraphQL as an alternative to REST.
GraphQL comes with a plethora of benefits for application development: GraphQL allows client applications to request exactly the data they need from an API (which reduces network traffic and increases performance). When accessing a GraphQL API from the frontend, you can use a GraphQL client library (such as Apollo Client or Relay) which reduces frontend boilerplate and provides out-of-the-box support for features like caching, optimistic UI updates, realtime functionality, offline support and more. GraphQL APIs are based on a strongly typed schema which effectively provides a way for you to have a strongly typed API layer. This means developers can be confident about the operations an API allows and the shape of the responsed to be returned by the server. GraphQL has an amazing ecosystem of tooling which greatly improve workflows and overall developer experience. For example, GraphQL Playground which provides an interactive IDE for sending queries and mutations to an API (which can even be used by non-technical audiences). Another example are GraphQL bindings which enable to compose existing GraphQL APIs like LEGO bricks. The GraphQL ecosystem is made the fantastic GraphQL community who is putting in a lot of thought as well as hard work for how GraphQL can be evolved in the future and what other tools developers will benefit from. Implementing GraphQL in your organization via the Apollo platform can help you ship features faster due to its excellent developer experience. Our #1 goal is to simplify data management across the stack. Features that are normally difficult to execute, such as fullstack caching, data normalization, and optimistic UI suddenly become trivial thanks to Apollo Client, Apollo Server, and Apollo Engine. Let’s learn how!