GraphQL - GraphQL
| Dezvoltatori | Facebook și comunitate |
|---|---|
| Eliberarea inițială | 14 septembrie 2015 |
| Versiune stabila | Iunie 2018
|
| Repertoriu | github |
| Scris in | Implementări în Java , JavaScript , Ruby , Scala , altele. |
| Sistem de operare | Cross-platform |
| Site-ul web | graphql |
GraphQL este un limbaj de interogare și manipulare de date open-source pentru API-uri și un timp de rulare pentru îndeplinirea interogărilor cu date existente. GraphQL a fost dezvoltat intern de Facebook în 2012, înainte de a fi lansat public în 2015. La 7 noiembrie 2018, proiectul GraphQL a fost mutat de la Facebook la noua Fundație GraphQL, găzduită de Fundația Linux non-profit . Din 2012, creșterea GraphQL a urmat cu exactitate cronologia adoptării, așa cum a fost stabilită de Lee Byron, creatorul GraphQL. Scopul lui Byron este de a face GraphQL omniprezent pe toate platformele web.
Acesta oferă o abordare a dezvoltării API-urilor web și a fost comparat și contrastat cu REST și alte arhitecturi de servicii web . Permite clienților să definească structura datelor necesare, iar aceeași structură a datelor este returnată de la server, împiedicând astfel returnarea unor cantități excesiv de mari de date, dar acest lucru are implicații pentru cât de eficientă poate fi cache-ul web al rezultatelor interogării. . Flexibilitatea și bogăția limbajului de interogare adaugă, de asemenea, o complexitate care poate nu merită pentru API-urile simple. În ciuda numelui, GraphQL nu oferă bogăția operațiunilor grafice pe care le-ați putea găsi într-o bază de date cu drepturi depline, cum ar fi Neo4j , sau chiar în dialectele SQL care acceptă închiderea tranzitivă . De exemplu, o interfață GraphQL care raportează părinții unei persoane nu poate returna, într-o singură interogare, setul tuturor strămoșilor lor.
GraphQL constă dintr-un sistem de tip, limbaj de interogare și semantică de execuție, validare statică și introspecție de tip . Acceptă citirea, scrierea (mutarea) și abonarea la modificări ale datelor (actualizări în timp real - cel mai frecvent implementate folosind Websockets ). Serverele GraphQL sunt disponibile pentru mai multe limbi, inclusiv Haskell , JavaScript , Perl , Python , Ruby , Java , C ++ , C # , Scala , Go , Rust , Elixir , Erlang , PHP , R , D și Clojure .
Pe 9 februarie 2018, GraphQL Schema Definition Language (SDL) a devenit parte a specificației.
Exemplu
Cerere POST :
{
orders {
id
productsList {
product {
name
price
}
quantity
}
totalAmount
}
}
Raspuns:
{
"data": {
"orders": [
{
"id": 1,
"productsList": [
{
"product": {
"name": "orange",
"price": 1.5
},
"quantity": 100
}
],
"totalAmount": 150
}
]
}
}
Vezi si
Referințe
linkuri externe