MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java...
Transcript of MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java...
![Page 1: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/1.jpg)
Zuhören. Analysieren. Beraten.
MICROSERVICES-SCHNITT – JETZT MIT GRAPHQL!
05.07.2018
Matthias Koch
![Page 2: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/2.jpg)
Zuhören. Analysieren. Beraten.
Agenda
1. Überblick über das Framework
2. GraphQL vs. REST
3. GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!2
![Page 3: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/3.jpg)
Zuhören. Analysieren. Beraten.
Agenda
1. Überblick über das Framework
2. GraphQL vs. REST
3. GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!3
![Page 4: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/4.jpg)
Zuhören. Analysieren. Beraten.
Was ist GraphQL?
Graph Query Language
Ursprünglich von Facebook als proprietäre API-Technologie entwickelt
2015 in Open-Source Projekt umgewandelt
Lizenziert seit 2017 über Open Web Foundation Agreement (OWFa)
Tritt Patentrechte ab
Im Kern eine Spezifikation
Referenzimplementierung in JavaScript
Mittlerweile in vielen Sprachen verfügbar
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!4
![Page 5: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/5.jpg)
Zuhören. Analysieren. Beraten.
Wer benutzt alles GraphQL?
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!5
Quelle: https://www.howtographql.com/basics/0-introduction/
![Page 6: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/6.jpg)
Zuhören. Analysieren. Beraten.
Was sind die Bestandteile von GraphQL?
GraphQL Schema Language
Typisierte Schema Definition Language
Definiert Daten und Methoden
Ermöglicht starke Entkopplung von Client und Endpoint
GraphQL Query Language
Deklarative Abfragesprache
GraphQL Runtime
Generische Implementierung des Basissets der GraphQL API
Transformation einer Query
Schema-Validierung
Transformation der Rückgabedaten
Beliebige Backends
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!6
![Page 7: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/7.jpg)
Zuhören. Analysieren. Beraten.
Graph
Daten einer Applikation können durch einen Graphen beschrieben werden.
Abfrage der Daten durch Navigation in diesem Graphen.
In diesen Graphen können auch Zyklen auftreten.
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!7
![Page 8: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/8.jpg)
Zuhören. Analysieren. Beraten.
Graph - Beispiel
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!8
Actor Film Critic
Queries können beliebig komplex werden.
Objekte können gegebenenfalls mehrfach in der selben Query evaluiert werden.
![Page 9: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/9.jpg)
Zuhören. Analysieren. Beraten.
Root Types
Container für die durchzuführende Funktionen:
Queries
Mutators
Create
Update
Delete
Subscribers
Ohne Long Time Polling
Ohne Webhooks
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!9
![Page 10: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/10.jpg)
Zuhören. Analysieren. Beraten.
GraphQL-Java
Interessant wegen Migration von Java REST-Endpoints
Aktuell noch viele Versionssprünge
Niedrige Downloadzahlen
Noch nicht durchgängige Dokumentation
Subscription erst seit kurzem Bestandteil von GraphQL-Java
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!10
![Page 11: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/11.jpg)
Zuhören. Analysieren. Beraten.
Beispiel: Movieking
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!11
Actor
Film
Critic
Query
![Page 12: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/12.jpg)
Zuhören. Analysieren. Beraten.
Tool: GraphiQL
In-Browser IDE
Queries und Mutations können damit abgesetzt werden.
Schema kann damit untersucht werden.
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!12
![Page 13: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/13.jpg)
Zuhören. Analysieren. Beraten.
Schema
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!13
schema {query: Querymutation: Mutation
}
type Query {actor(name: String!): Actorfilm(title: String): Film
}
type Mutation {setAge(name:String!, age: Int!) : Actor
}
type Actor {id: ID!name: String!age: Intfilms(title: String): [Film]pets: [String]
}
type Film {id: ID!title: String!critics: [Critic]
}
type Critic {id: ID!title: String!lazyBonesSummary: Stringscore: Float
}
![Page 14: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/14.jpg)
Zuhören. Analysieren. Beraten.
Überblick über das Framework
14 Microservices-Schnitt - Jetzt mit GraphQL!
Tool: GraphiQL
![Page 15: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/15.jpg)
Zuhören. Analysieren. Beraten.
Big Picture
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!15
Legacy System / Microservice
3rd Party API
![Page 16: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/16.jpg)
Zuhören. Analysieren. Beraten.
DataLoader
2010 von Facebook entwickelt
Referenzimplementierung wieder JavaScript
Implementierungen in vielen Sprachen auch in Java
Funktionalität für Batching und Caching
Simple, intuitive API
Apache Commons v2.0 Lizenz
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!16
![Page 17: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/17.jpg)
Zuhören. Analysieren. Beraten.
java-dataloader
Alle Felder in GraphQL werden unabhängig evaluiert.
Bei „naiver“ Implementierung wird die selbe Information ggf. mehrfach berechnet.
DataLoader hat per default Caching aktiviert.
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!17
![Page 18: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/18.jpg)
Zuhören. Analysieren. Beraten.
DataLoader - Simples Beispiel@Test
public void test_batch_loads() throws Exception {
BatchLoader<String, String> batchLoader = CompletableFuture::completedFuture;
DataLoader<String, String> loader = new DataLoader<>(BatchLoader);
loader.load("A");
loader.load("B");
loader.loadMany(asList("C", "D"));
loader.dispatch();
Statistics stats = loader.getStatistics();
assertEquals(stats.getLoadCount(), 4L);
assertEquals(stats.getBatchInvokeCount(), 1L);
assertEquals(stats.getBatchLoadCount(), 4L);
assertEquals(stats.getCacheHitCount(), 0L);
loader.load("A");
loader.load("B");
loader.dispatch();
stats = loader.getStatistics();
assertEquals(stats.getLoadCount(), 6L);
assertEquals(stats.getBatchInvokeCount(), 1L);
assertEquals(stats.getBatchLoadCount(), 4L);
assertEquals(stats.getCacheHitCount(), 2L);
}
Überblick über das Framework
Microservices-Schnitt - Jetzt mit GraphQL!18
![Page 19: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/19.jpg)
Zuhören. Analysieren. Beraten.
Agenda
1. Überblick über das Framework
2. GraphQL vs. REST
3. GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!19
![Page 20: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/20.jpg)
Zuhören. Analysieren. Beraten.
Movieking RESTGET /movieking.com/actor/name/Buck%20Borris
{
"id": "123-123-123-888",
"name": "Buck Borris",
"age": 79,
"moreFilms": true,
"films": [
{
"title": "Missing the action",
"links": {
"rel": "film",
"href": "movieking.com/film/id/456-456-456-888„
}
},
{
"title": "Firetruck",
"links": {
"rel": "film",
"href": "movieking.com/film/id/456-456-456-999"
}
}, …
] ,
"pets": [
"stinky“, "winky"
]
}
GraphQL vs. REST
Microservices-Schnitt - Jetzt mit GraphQL!20
GET /movieking.com/film/id//456-456-456-888
{
"id": "456-456-456-888",
"title": "Missing the action",
"iinks": [
{
"rel": "critic",
"href": "movieking.com/critic/id/567-567-567-888"
},
{
"rel": "critic",
"href": "imovieking.com/critic/id/567-567-567-888"
}
]
}
GET /movieking.com/critic/id//567-567-567-888
{
“"id": "567-567-567-888",
"title": "Missing the action",
"lazyBonesSummary": "Masterpiece of pacifist film",
"score": 7.46
}
![Page 21: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/21.jpg)
Zuhören. Analysieren. Beraten.
Overfetching/Underfetching
Overfetching
Daten werden übermittelt, weil die Ressource immer die gleiche Menge an Daten liefert.
Unnütze Daten (z.B. Actor‘s pets) werden immer mit übertragen.
Underfetching / n+1 Problem
Bei großer Menge Daten wird die Zahl der Datensätze begrenzt.
Möglicherweise sind die gesuchten Daten nicht enthalten.
Mehrere Requests werden ggf. benötigt, um an die gewünschten Daten zu kommen.
GraphQL vs. REST
Microservices-Schnitt - Jetzt mit GraphQL!21
![Page 22: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/22.jpg)
Zuhören. Analysieren. Beraten.
Versionierung von GraphQL APIs
Versionierung wird nicht empfohlen.
In der Regel wird das Schema größer.
Macht bei GraphQL nichts, da beim „Declarative Data Fetching“ immer nur die explizit
angefragten Daten übermittelt werden.
GraphQL vs. REST
Microservices-Schnitt - Jetzt mit GraphQL!22
![Page 23: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/23.jpg)
Zuhören. Analysieren. Beraten.
Direkter Vergleich
GraphQL vs. REST
Microservices-Schnitt - Jetzt mit GraphQL!23
Kriterium GraphQL REST
Spezifikation ja nein
Server-Roundtrips wenige viele
Fehlerbehandlung einfacher schwerer
Overfetching nein ja
Underfetching seltener häufiger
Zahl der Endpoints weniger mehr
Versionierung einfacher schwerer
Typisierung stark schwach
Schema ja nein
Service-Discovery nein ja
Query-Komplexität hoch einfach
![Page 24: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/24.jpg)
Zuhören. Analysieren. Beraten.
Alternativen zu REST und GraphQL
GRPC
Falcor von Netflix
GraphQL vs. REST
Microservices-Schnitt - Jetzt mit GraphQL!24
![Page 25: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/25.jpg)
Zuhören. Analysieren. Beraten.
Agenda
1. Überblick über das Framework
2. GraphQL vs. REST
3. GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!25
![Page 26: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/26.jpg)
Zuhören. Analysieren. Beraten.
GraphQL als API-Gateway
Vorteile:
Alle Daten können mit einem Server-Roundtrip ermittelt werden.
einfaches Fehlerhandling
einfaches Transaktionshandling
Nachteil:
Absicherung gegen schadhafte Queries schwieriger/risikoreicher
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!26
![Page 27: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/27.jpg)
Zuhören. Analysieren. Beraten.
Vertikaler Schnitt
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!27
Service
Discovery
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
![Page 28: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/28.jpg)
Zuhören. Analysieren. Beraten.
Vertikaler Schnitt mit GraphQL
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!28
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
![Page 29: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/29.jpg)
Zuhören. Analysieren. Beraten.
GraphQL als API-Gateway
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!29
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
GraphQL
Gateway
![Page 30: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/30.jpg)
Zuhören. Analysieren. Beraten.
API-Gateway mit disjunkten Graphen
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!30
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
GraphQL Gateway mit 2
disjunkten Graphen
![Page 31: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/31.jpg)
Zuhören. Analysieren. Beraten.
API-Gateway – monolithische UI
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!31
BezahlvorgangBestellvorgang
Monolithische UI
![Page 32: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/32.jpg)
Zuhören. Analysieren. Beraten.
Consumer-Driven Contracts
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!32
Quelle: https://martinfowler.com/articles/consumerDrivenContracts.html
![Page 33: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/33.jpg)
Zuhören. Analysieren. Beraten.
Consumer-Driven Contracts GraphQL
Gibt es auch für GraphQL: GraphQL Contract Test
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!33
![Page 34: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/34.jpg)
Zuhören. Analysieren. Beraten.
Consumer-Driven Contracts vertikaler Schnitt
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!34
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
Contracts Contracts
![Page 35: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/35.jpg)
Zuhören. Analysieren. Beraten.
Consumer-Driven Contracts API-Gateway
GraphQL als API-Gateway?
Microservices-Schnitt - Jetzt mit GraphQL!35
Bezahlvorgang
UI Bestellvorgang
Bestellvorgang
UI Bezahlvorgang
GraphQL
Gateway
Contracts
![Page 36: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/36.jpg)
Zuhören. Analysieren. Beraten.
Fazit
Microservices-Schnitt - Jetzt mit GraphQL!36
GraphQL ist noch eine vergleichsweise junge Technologie.
Formalisiertes Schema sorgt für starke Entkopplung der Schichten.
Versionierung der API wird wesentlich erleichtert.
GraphQL hat gute Konzepte um die Limitierungen von REST aufzulösen.
![Page 37: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/37.jpg)
Zuhören. Analysieren. Beraten.
FRAGEN?
Microservices-Schnitt - Jetzt mit GraphQL!37
DANKE!
Gerne stehe ich am sidion Stand noch für
Gespräche zur Verfügung.
![Page 38: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/38.jpg)
Zuhören. Analysieren. Beraten.
Referenzen
https://code.facebook.com/posts/121714468491809/relicensing-the-graphql-specification/
https://github.com/facebook/dataloader
https://github.com/graphql-java/java-dataloader
http://graphql.org/
GraphQL API Design (API-University Series Book 5) (English Edition) Kindle Edition
https://github.com/symm/graphql-contract-test
https://grpc.io/
https://github.com/Netflix/falcor
https://dev-blog.apollodata.com/the-graphql-stack-how-everything-fits-together-35f8bf34f841
Microservices-Schnitt - Jetzt mit GraphQL!38
![Page 39: MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! · GraphQL-Java Interessant wegen Migration von Java REST-Endpoints Aktuell noch viele Versionssprünge Niedrige Downloadzahlen ... GraphQL](https://reader034.fdocuments.net/reader034/viewer/2022050211/5f5de4d338802c753a0aaaef/html5/thumbnails/39.jpg)
Zuhören. Analysieren. Beraten.
sidion
Heßbrühlstr. 15
70565 Stuttgart
Tel. + 49 711 490 109 – 0
Fax + 49 711 490 109 – 79
www.sidion.de
VIELEN DANK.
Microservices-Schnitt - Jetzt mit GraphQL!39