"GraphQL" yra labai populiarus, labai galingas, tačiau iš esmės skiriasi nuo "OData". Taigi nėra taip, kad kuris nors yra absoliučiai geresnis už kitą.
Yra keletas punktų, kuriuos galiu gauti.
OData = SQL in URL
OData buvo būdas serializuoti SQL sakinį į URL
Sunku apriboti kliento užklausų galimybes.
OData standartizuota
OData specifikacija yra jos stiprybė, kaip ir RPC RESTful. RESTful turi specifikacijas ir yra lengvai suprantamas, tačiau nėra lengva viską išreikšti. RPC gali išreikšti viską, tačiau jis yra pernelyg nestandartizuotas.
OData trūkumai
OData paprastai yra griežtesnė nei duomenų bazės schemos būsena (taigi tai panašu į SQL užklausą), o pakeitus schemą sunkiau išlaikyti seną versiją.
OData teikia pirmenybę vieningam valdymui, todėl jį sunku optimizuoti ypatingais atvejais.
Geriausiai apibūdinta
OData yra kaip SQL užklausa, GraphQL yra kaip saugoma procedūra. Skonis lėtai.
Todėl šie du turi egzistuoti kartu ir papildyti vienas kitą.
suvestinė
OData yra kaip SQL užklausa, GraphQL yra kaip saugoma procedūra.
OData yra kaip RESTful, o GraphQL yra kaip RPC
Kai norite paprasto suvienijimo, rasite RESTFul puikus, SQL užklausa yra pakankamai, OData yra geras.
Tačiau kai turite ypatingų situacijų ir negalite naudoti paprasto metodo, RPC, saugomos procedūros, GraphQL pabrėžia savo žavesį.
Pažvelkime į abiejų pusių naudojimo scenarijus. "OData" yra linkusi būti įmonių programų, tokių kaip SAP, API. Paprastai paprastesnis, reliacinis duomenų bazės modelis.
"GraphQL" yra interneto programa, atvira API ir bet kokio tipo duomenys (pvz., NoSQL)
Taigi apibendrinant galima pasakyti, kad GraphQL gali išreikšti daugiau (laisviau) nei OData, OData turi taisykles (daugiau apribojimų) nei GraphQL
Kuris iš jų yra, ar "GraphQL" išoriniam pasauliui, ar "OData" vidiniam, tai tikrai priklauso nuo projekto, ar jį naudoti.