GraphQL ir ļoti populārs, ļoti spēcīgs, taču tas būtiski atšķiras no OData. Tātad nav tā, ka kāds ir absolūti labāks par otru.
Ir daži punkti, ko es varu iegūt.
OData = SQL in URL
OData bija veids, kā serializēt SQL paziņojumu URL
Ir grūti ierobežot klienta puses vaicājuma iespējas.
OData standartizēts
OData specifikācija ir tās stiprā puse, tāpat kā RPC to dara RESTful. RESTful ir specifikācijas un ir viegli saprotams, bet nav viegli izteikt visu. RPC var izteikt visu, bet tas ir pārāk nestandartizēts.
OData trūkumi
OData parasti ir stingrāks nekā datu bāzes shēmas stāvoklis (tātad tas ir kā SQL Query), un, kad shēma ir mainīta, ir grūtāk uzturēt veco versiju.
OData dod priekšroku vienotai pārvaldībai, un to ir grūti optimizēt īpašiem gadījumiem.
Vislabāk aprakstīts
OData ir kā SQL Query, GraphQL ir kā saglabāta procedūra. Jūs garšojat lēni.
Tāpēc šiem diviem ir jāpastāv līdzās un jāpapildina viens otru.
Kopsavilkuma
OData ir kā SQL Query, GraphQL ir kā saglabāta procedūra.
OData ir kā RESTful, un GraphQL ir kā RPC
Ja vēlaties vienkāršu apvienošanu, jūs atradīsiet RESTFul lielisku, SQL Query ir pietiekams, OData ir labs.
Bet, ja jums ir īpašas situācijas un nevarat izmantot vienkāršu metodi, RPC, saglabātu procedūru, GraphQL izceļ tās šarmu.
Apskatīsim abu pušu lietošanas scenārijus. OData sliecas būt API uzņēmumu lietojumprogrammām, piemēram, SAP. Parasti vienkāršāks, relāciju datu bāzes modelis.
GraphQL ir interneta lietojumprogramma, atklāta API un jebkura veida dati (piemēram, NoSQL)
Tātad, kopsavilkumā, GraphQL var izteikt vairāk (brīvāk) nekā OData, OData ir noteikumi (vairāk ierobežojumu) nekā GraphQL
Kurš tas ir, vai GraphQL ārpasaulei, vai OData iekšējam, tas patiešām ir atkarīgs no projekta, lai to izmantotu.