docs: streamline graphql update to make changes more visible (#166)

This commit is contained in:
Stefan Rotsch
2023-02-22 19:21:49 +01:00
committed by Bastian
parent 46c32eefbe
commit dd2e4e71c0
2 changed files with 15 additions and 33 deletions

View File

@@ -2,22 +2,25 @@
title: "GraphQL"
ring: adopt
quadrant: methods-and-patterns
tags: [architecture]
tags: [architecture]
---
GraphQL is a query language for your API, and a server-side runtime for executing queries by using a type system you define for your data.
GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
[GraphQL](https://graphql.org/) is a query language for your API, and a server-side runtime for executing queries by
using a type system you define for your data. It isn't tied to any specific database or storage engine and is instead
backed by your existing code and data.
GraphQL was developed by Facebook around 2010 and releases 2015.
GraphQL was developed by Facebook around 2010 and released 2015.
The main challenge it solves is to improve communication between browser and server on high dynamic web apps.
The advantages are:
* schema and schema validation together with a useful type system
* the client (browser) controls what data should be sent (data reduction)
* with one request you can fetch "all" required data
Key advantages are:
We are using it together with [Apollo Client](/tools/apollo-client.html) in our [React.js](/languages-and-frameworks/react.html) based frontend.
This way the React components have their relevant GraphQL snippet, defining what data they request or mutate from the "backend for frontend", directly coupled.
That makes it transparent what data is available. Apollo takes care of sending an aggregated GraphQL query to the backend.
- schema and schema validation together with a useful type system
- the client (browser) controls what data should be sent (data reduction)
- with one request you can fetch "all" required data
The framework [Flamingo offers support for GraphQL](https://docs.flamingo.me/3.%20Flamingo%20Modules/graphql.html) and also Flamingo Commerce offers a full featured GraphQL API for e-commerce features. ([Example GraphQL Console for Commerce](https://demoshop.flamingo.me/en/graphql-console))
Client side integration can be achieved using the [Apollo Client Framework](/tools/apollo-client.html) which easily
integrates into [React.js](/languages-and-frameworks/react.html) based frontends.
The Flamingo framework [offers support for GraphQL](https://docs.flamingo.me/3.%20Flamingo%20Modules/graphql.html)
while Flamingo Commerce provides a full-featured GraphQL API for e-commerce:
[Example GraphQL Console for Commerce](https://demoshop.flamingo.me/en/graphql-console).

View File

@@ -5,30 +5,9 @@ quadrant: methods-and-patterns
tags: [architecture]
---
[GraphQL](https://graphql.org/) is a query language for your API, and a server-side runtime for executing queries by
using a type system you define for your data.
GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
GraphQL was developed by Facebook around 2010 and released 2015.
The main challenge it solves is to improve communication between browser and server on high dynamic web apps.
The advantages are:
- schema and schema validation together with a useful type system
- the client (browser) controls what data should be sent (data reduction)
- with one request you can fetch "all" required data
Client side integration can be achieved using the [Apollo Client Framework](/tools/apollo-client.html) which easily
integrates into
[React.js](/languages-and-frameworks/react.html) based frontends.
For [Spring Boot](https://spring.io/projects/spring-boot/) based backends [DGS](https://netflix.github.io/dgs/) provides
a nice framework featuring:
- an annotation-based programming model for Spring
- a test framework for writing query tests as unit tests
- a [Gradle](https://gradle.org/) code generation plugin to create types from a GraphQL schema in Java or Kotlin
The framework [Flamingo offers support for GraphQL](https://docs.flamingo.me/3.%20Flamingo%20Modules/graphql.html) and
also Flamingo Commerce offers a full featured GraphQL API for e-commerce
features. ([Example GraphQL Console for Commerce](https://demoshop.flamingo.me/en/graphql-console))