GraphQL - GraphQL
| Vývojáři | Facebook a komunita |
|---|---|
| První vydání | 14. září 2015 |
| Stabilní uvolnění | Června 2018
|
| Úložiště | github |
| Napsáno | Implementace v Javě , JavaScriptu , Ruby , Scala a dalších. |
| Operační systém | Cross-platform |
| webová stránka | graphql |
GraphQL je open source zdrojový dotazovací a manipulační jazyk pro API a runtime pro plnění dotazů s existujícími daty. GraphQL byl vyvinut interně společností Facebook v roce 2012, než byl veřejně vydán v roce 2015. Dne 7. listopadu 2018 byl projekt GraphQL přesunut z Facebooku do nově založené nadace GraphQL Foundation, kterou pořádá nezisková nadace Linux Foundation . Od roku 2012 vzestup GraphQL sleduje časovou osu přijetí přesně podle Lee Byrona, tvůrce GraphQL. Cílem společnosti Byron je učinit GraphQL všudypřítomným napříč webovými platformami.
Poskytuje přístup k vývoji webových API a byl porovnáván a porovnáván s REST a dalšími architekturami webových služeb . Umožňuje klientům definovat požadovanou strukturu dat a ze serveru je vrácena stejná struktura dat, což brání vrácení nadměrně velkého množství dat, ale to má důsledky pro to, jak efektivní může být webová mezipaměť výsledků dotazů . Flexibilita a bohatost dotazovacího jazyka také zvyšuje složitost, která se nemusí vyplatit pro jednoduchá rozhraní API. Navzdory názvu GraphQL neposkytuje bohatost grafových operací, které lze nalézt v plnohodnotné grafové databázi, jako je Neo4j , nebo dokonce v dialektech SQL, které podporují přechodné uzavírání . Například rozhraní GraphQL, které hlásí rodiče jednotlivce, nemůže v jednom dotazu vrátit sadu všech svých předků.
GraphQL se skládá z typového systému, dotazovacího jazyka a sémantiky provádění, statické validace a introspekce typu . Podporuje čtení, zápis (mutace) a přihlášení k odběru změn dat (aktualizace v reálném čase - nejčastěji implementované pomocí Websockets ). Servery GraphQL jsou k dispozici pro více jazyků, včetně Haskell , JavaScript , Perl , Python , Ruby , Java , C ++ , C# , Scala , Go , Rust , Elixir , Erlang , PHP , R , D a Clojure .
Dne 9. února 2018 se součástí specifikace stal jazyk GraphQL Schema Definition Language (SDL).
Příklad
POST požadavek:
{
orders {
id
productsList {
product {
name
price
}
quantity
}
totalAmount
}
}
Odezva:
{
"data": {
"orders": [
{
"id": 1,
"productsList": [
{
"product": {
"name": "orange",
"price": 1.5
},
"quantity": 100
}
],
"totalAmount": 150
}
]
}
}
Viz také
Reference
externí odkazy