GraphQL: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) K (Sn verschob die Seite Benutzer:Tit/GraphQL nach GraphQL: Sehr schöne umfangreiche Seite) |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 14: | Zeile 14: | ||
}} | }} | ||
[[GraphQL]] ist eine Abfragesprache (Query) für [[API]]<nowiki/>s und ein Laufzeitsystem (Runtime) zum beantworten von Abfragen. Sie ist eine flexible Alternative zu [[SQL]], die sich durch ihre Effizienz auszeichnet. Sie ermöglicht es dem Benutzy, die genaue Struktur der benötigten Daten zu definieren, ohne unnötig große Datenmengen bei jeder Abfrage zu übermitteln. GraphQL verfügt über drei verschieden Operations-Typen, wie das Lesen (Query), Schreiben (Mutation) und Abonnieren (Subscription) von Datenänderungen (Echtzeit-Updates).<ref>[https://web.archive.org/web/20180718051011/http://facebook.github.io/graphql/June2018/#sec-Language.Operations web.archive.org] Archiv von Wikipedia, Abgerufen am 9.03.2023</ref> Es kann auch in einer [[IDE|IDE (Integrated Development Environment)]] namens [[GraphiQL]] bereitgestellt werden, welche auch modifiziert werden kann, um das Programmieren zu vereinfachen.<ref>[https://github.com/graphql/graphiql/blob/main/packages/graphiql/README.md github.com] Abgerufen am 3.09.2023</ref> | [[GraphQL]] ist eine Abfragesprache (Query) für [[API]]<nowiki/>s und ein Laufzeitsystem (Runtime) zum beantworten von Abfragen. Sie ist eine flexible Alternative zu [[SQL]], die sich durch ihre Effizienz auszeichnet. Sie ermöglicht es dem Benutzy, die genaue Struktur der benötigten Daten zu definieren, ohne unnötig große Datenmengen bei jeder Abfrage zu übermitteln. GraphQL verfügt über drei verschieden Operations-Typen, wie das Lesen (''Query''), Schreiben (''Mutation'') und Abonnieren (''Subscription'') von Datenänderungen (Echtzeit-Updates).<ref>[https://web.archive.org/web/20180718051011/http://facebook.github.io/graphql/June2018/#sec-Language.Operations web.archive.org] Archiv von Wikipedia, Abgerufen am 9.03.2023</ref> Es kann auch in einer [[IDE|IDE (Integrated Development Environment)]] namens [[GraphiQL]] bereitgestellt werden, welche auch modifiziert werden kann, um das Programmieren zu vereinfachen.<ref>[https://github.com/graphql/graphiql/blob/main/packages/graphiql/README.md github.com] Abgerufen am 3.09.2023</ref> | ||
== Geschichte == | == Geschichte == | ||
Zeile 37: | Zeile 37: | ||
|[https://github.com/webonyx/graphql-php graphql-php] | |[https://github.com/webonyx/graphql-php graphql-php] | ||
|- | |- | ||
|'''[[Java]] / Kotlin''' | |'''[[Java (Programmiersprache)|Java]] / Kotlin''' | ||
|[https://github.com/graphql-java/graphql-java graphql-java] | |[https://github.com/graphql-java/graphql-java graphql-java] | ||
|- | |- | ||
|'''[[C#]] /.NET''' | |'''[[C-Sharp|C#]] /.NET''' | ||
|[https://github.com/graphql-dotnet/graphql-dotnet graphql-dotnet] | |[https://github.com/graphql-dotnet/graphql-dotnet graphql-dotnet] | ||
|- | |- | ||
|'''[[Python]]''' | |'''[[Python (Programmiersprache)|Python]]''' | ||
|[https://graphene-python.org/ Graphene] | |[https://graphene-python.org/ Graphene] | ||
|- | |- | ||
Zeile 70: | Zeile 70: | ||
|[https://github.com/morpheusgraphql/morpheus-graphql Morpheus-graphql] | |[https://github.com/morpheusgraphql/morpheus-graphql Morpheus-graphql] | ||
|- | |- | ||
|'''[[C]] / [[C++]]''' | |'''[[C (Programmiersprache)]] / [[C++]]''' | ||
|[https://github.com/graphql/libgraphqlparser libgraphqlparser] | |[https://github.com/graphql/libgraphqlparser libgraphqlparser] | ||
|- | |- |
Aktuelle Version vom 29. September 2023, 14:09 Uhr
GraphQL | |
---|---|
| |
Entwickler | Meta und Community |
Erste Veröffentlichung | 14. September, 2015 |
Finale Veröffentlichung | Oktober, 2021 |
Repository | github.com/graphql/graphql-spec |
Website | graphql.org |
GraphQL ist eine Abfragesprache (Query) für APIs und ein Laufzeitsystem (Runtime) zum beantworten von Abfragen. Sie ist eine flexible Alternative zu SQL, die sich durch ihre Effizienz auszeichnet. Sie ermöglicht es dem Benutzy, die genaue Struktur der benötigten Daten zu definieren, ohne unnötig große Datenmengen bei jeder Abfrage zu übermitteln. GraphQL verfügt über drei verschieden Operations-Typen, wie das Lesen (Query), Schreiben (Mutation) und Abonnieren (Subscription) von Datenänderungen (Echtzeit-Updates).[1] Es kann auch in einer IDE (Integrated Development Environment) namens GraphiQL bereitgestellt werden, welche auch modifiziert werden kann, um das Programmieren zu vereinfachen.[2]
Geschichte
GraphQL wurde 2012 von Facebook (heutzutage bekannt als Meta) intern entwickelt und 2015 veröffentlicht.[3][4] Am 7. November 2018 wurde das GraphQL-Projekt von Facebook in die GraphQL Foundation zusammen mit der Linux Foundation ausgegliedert.[5]
Installation
Die gewünschte GraphQL-Version kann auf der Offiziellen Seite unter dem Tab "Code" heruntergeladen werden. Zu jeder Version wird eine separate Installation benötigt, welche in ihrer Dokumentation erklärt wird. Es werden jedoch npm install
oder import
in mehreren Sprachen, go get
in GO, use
in PHP, using
in C-Sprachen, use
in Rust, pip install
in Python, gem install
in Ruby und viele vorgenerierte Code-Snippets zum installieren genutzt.
Zu den möglichen Sprach-Implementierungen gehören:
Sprache | Implementierung |
---|---|
JavaScript | GraphQL.js |
Go | graphql-go |
PHP | graphql-php |
Java / Kotlin | graphql-java |
C# /.NET | graphql-dotnet |
Python | Graphene |
Swift / Objective-C | Graphiti |
Rust | Juniper |
Ruby | graphql-ruby |
Elixir | Absinthe |
Scala | Sangria |
Flutter | GraphQL Flutter |
Clojure | Lacinia |
Haskell | Morpheus-graphql |
C (Programmiersprache) / C++ | libgraphqlparser |
Elm | elm-graphql |
OCaml / Reason | ocaml-graphql-server |
Erlang | graphql-erlang |
Julia | Diana.jl |
R | ghql |
Groovy | GORM GraphQL |
Perl | graphql-perl |
D | graphqld |
Ballerina | ballerina-graphql |
Benutzung
GraphiQL[6] eignet sich am besten für das Programmieren in GraphQL, ist jedoch nicht Notwendig. Da GraphQL nicht an bestimmte Datenbanken gebunden ist, kann sie universell eingesetzt werden. Die Suchanfrage ähnelt dem Output, was das Überprüfen von Daten einfacher und somit schneller macht.
Suchanfrage | Output |
---|---|
{
hero {
name
friends {
name
}
}
}
ㅤ
|
{
"data": {
"hero": {
"name": "R2-D2",
"friends": [
{
"name": "Luke Skywalker"
},
{
"name": "Han Solo"
},
{
"name": "Leia Organa"
}
]
}
}
}
|
Einzelnachweise
- ↑ web.archive.org Archiv von Wikipedia, Abgerufen am 9.03.2023
- ↑ github.com Abgerufen am 3.09.2023
- ↑ graphql.org Abgerufen am 9.03.2023
- ↑ engineering.fb.com Abgerufen am 9.03.2023
- ↑ techcrunch.com Abgerufen am 9.03.2023
- ↑ github.com Abgerufen am 13.03.2023