Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DataEngineering
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Marco Kuoni
DataEngineering
Commits
783dcd4e
Commit
783dcd4e
authored
7 years ago
by
Marcel Huber
Browse files
Options
Downloads
Patches
Plain Diff
updated solutions
parent
149b1baf
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
PostGraphile/README.md
+8
-10
8 additions, 10 deletions
PostGraphile/README.md
PostGraphile/README.solutions.md
+13
-16
13 additions, 16 deletions
PostGraphile/README.solutions.md
with
21 additions
and
26 deletions
PostGraphile/README.md
+
8
−
10
View file @
783dcd4e
...
...
@@ -262,25 +262,23 @@
***SQL:***
<!-- SOLUTION
Generelle Abfragesprache, beliebige Applikation mit
normalisierten
Daten, z.B. Nutzerverwaltung von Firma.
Generelle Abfragesprache, beliebige Applikation mit
normalisierten
Daten, z.B. Nutzerverwaltung von Firma.
SOLUTION -->
***RESTful:***
<!-- SOLUTION
Aplikation mit wenigen "Klassen", welche oft mit allen
Inhalten ausgeliefert wird, zB Twitter.
REST ist kein Standard, ist eher statisch, keine expliziten
Joins aber auch viel einfacher.
Aplikation mit wenigen "Klassen", welche oft mit allen Inhalten
ausgeliefert wird, zB Twitter. REST ist kein Standard, ist eher
statisch, keine expliziten Joins aber auch viel einfacher.
SOLUTION -->
***GraphQL:***
<!-- SOLUTION
Webapplikation mit Joins/diversen verknüpften Daten,
von welchen man meist nicht alle Felder braucht, zB Frontend für
Nutzerverwaltung von Firma.
GraphQL ist web-orientiert, dynamisch (Standard lässt
Webapplikation mit Joins/diversen verknüpften Daten, von welchen man
meist nicht alle Felder braucht, zB Frontend für Nutzerverwaltung
von Firma. GraphQL ist web-orientiert, dynamisch (Standard lässt
absichtlich vieles Offen), ist einfach zu verwenden. Graphen als
Denkmodell für Daten.
SOLUTION -->
...
...
This diff is collapsed.
Click to expand it.
PostGraphile/README.solutions.md
+
13
−
16
View file @
783dcd4e
...
...
@@ -19,7 +19,7 @@
für die Implementations-spezifischen Query-Filter
-
Die bereitgestellten Instanzen (vgl. unten) werden regelmässig und
automatisch alle zwei Stunden zurückgesetzt und zwar um 00, 02, 04,
06, 08, 10, 12, 14, 16, 18, 20, 22
)
!
06, 08, 10, 12, 14, 16, 18, 20, 22!
-
Wenn eine der 21 Instanzen nicht funktionieren sollte, bitte eine
andere (freie) Instanz nehmen.
...
...
@@ -126,18 +126,13 @@
query alleAngestelltenMitInLuzern {
allAngestellters(filter: {
and: [{
salaer: {
greaterThan: "5000"
}
salaer: {greaterThan: "5000"}
}, {
salaer: {
lessThan: "8000"
}
salaer: {lessThan: "8000"}
}],
wohnort: {
equalTo: "Luzern"
}
}, orderBy: SALAER_ASC) {
wohnort: {equalTo: "Luzern"}
}, orderBy: SALAER_ASC)
{
nodes {
name
salaer
...
...
@@ -224,15 +219,17 @@
- Weit verbreitet
- APIs strukturell gleich und daher einfach zu benutzen
- Nachteile:
- Viele Roundtrips notwendig um Daten abzufragen
- Resultat
o
bjekte enthalten immer alle Felder
- Viele Roundtrips notwendig um Daten abzufragen
(N+1-Problem)
- Resultat
enthält z.T. unnötigerweise alle Objekte und de O
bjekte enthalten immer alle Felder
***GraphQL:***
- Vorteile:
- Einfach an Abfragebedürfnis anpassbar
- Sämtliche benötigten Daten werden in einem "Roundtrip" geliefert.
- Die vom Client definierte Datenstruktur ist deklarativ und typisiert.
- Der Client ist vom Server entkoppelt; der Client definiert die verlangten Daten und nicht der Server.
- Nachteile:
- Abfragesprache
nicht
normiert, Grundelemente meist gleich
- Erweiterungen wie bspw. Filters Backend
spezifisch
- Abfragesprache
ist nur teilweise
normiert, Grundelemente meist gleich
- Erweiterungen wie bspw. Filters
sind
Backend
-
spezifisch
2.
Nennen Sie je ein Beispiel für einen typischen Anwendungsfall von
SQL, RESTful, GraphQL
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment