A GraphQL nagyon népszerű, nagyon erős, de alapvetően különbözik az ODatától. Szóval nem arról van szó, hogy bármelyik abszolút jobb lenne a másiknál.
Van néhány pont, amit megértek.
OData = SQL az URL-ben
Az OData egy SQL utasítás sorializálásának módja volt URL-be
Nehéz korlátozni a kliens oldal lekérdezési lehetőségét.
OData Standardizált
Az OData specifikációja az erőssége, ahogy az RPC is a RESTful-nak. A RESTfulnak vannak specifikációi és könnyen érthető, de nem könnyű mindent kifejezni. Az RPC mindent ki tud fejezni, de túl szabványtalan.
Az OData hibái
Az OData általában szorosabb, mint az adatbázis séma állapota (tehát olyan, mint az SQL Query), és ha a sémát megváltoztatják, nehezebb a régi verzió fenntartása.
Az OData az egységes menedzsmentet részesíti előnyben, és speciális esetekre optimalizálni nehéz.
Legjobban leírva
Az OData olyan, mint az SQL Query, a GraphQL olyan, mint a tárolt eljárás. Lassan ízel.
Ezért ennek a kettőnek együtt kell léteznie és kiegészítenie egymást.
összefoglalás
Az OData olyan, mint az SQL Query, a GraphQL olyan, mint a tárolt eljárás.
Az OData olyan, mint a RESTful, a GraphQL pedig olyan, mint az RPC
Ha egyszerű egységet szeretnél, a RESTFul nagyszerű lesz, az SQL lekérdezés elegendő, az OData jó.
De amikor különleges helyzetek vannak, és nem tudsz egyszerű módszert, RPC-t vagy tárolt eljárást használni, a GraphQL kiemeli a vonzerejét.
Nézzük meg mindkét oldal használati helyzeteit. Az OData inkább vállalati alkalmazások, például az SAP számára készült API-ként szolgál. Általában az egyszerűbb, relációs adatbázis-mintázatot használják.
A GraphQL egy internetes alkalmazás, egy kiszolgáltatott API és bármilyen típusú adat (például NoSQL)
Összefoglalva: a GraphQL többet (szabadabban) tud kifejezni, mint az OData, az ODatának szabályai (több korlátozása) vannak, mint a GraphQL-nek
Melyik az, vagy a GraphQL a külvilágra, vagy az OData a belső világra, ez tényleg a projekttől függ, hogy használja.