Абодва — гэта шырока выкарыстоўваныя спосабы стварэння API, але яны вырашаюць адну і тую ж асноўную праблему — дазваляючы праграмным сродкам запытваць даныя — з сапраўды рознымі кампрамісамі.
REST арганізуе даныя ў фіксаваныя канчатковыя кропкі — кожны URL вяртае загадзя вызначаны набор даных. GraphQL выкарыстоўвае адну канчатковую кропку, дзе кліент дакладна ўказвае, якія палі яму патрэбны, атрымліваючы назад толькі гэтыя даныя.
GraphQL быў першапачаткова распрацаваны ўнутры Facebook у 2012 годзе для вырашэння канкрэтнай задачы эфектыўнай загрузкі складаных, узаемазвязаных даных для свайго мабільнага дадатку, перш чым быць апублікаваным з адкрытым зыходным кодам у 2015 годзе.
| Аспект | REST | GraphQL |
|---|---|---|
| Канчатковыя кропкі | Некалькі, фіксаваныя | Адна, гнуткая |
| Вяртаемыя даныя | Фіксаваная структура | Дакладна тое, што запытваецца |
| Крывая навучання | Прасцейшая, шырока зразумелая | Больш крутая на пачатку |
| Лепш для | Простых, прадказальных патрэб у даных | Складаных, уклаўшаных, разнастайных патрэб у даных |
Уласныя API NOXEL360 пабудаваны з выкарыстаннем REST дзеля іх прастаты і шырокай сумяшчальнасці з прадуктамі экасістэмы.
REST, як правіла, добра працуе для прасцейшых праграм з прадказальнымі патрэбамі ў даных. GraphQL выдатна паказвае сябе, калі кліенту патрэбны гнуткія ўклаўшаныя даныя — як у мабільным дадатку, якому патрэбны розныя формы даных для розных экранаў з адной і той жа асноўнай базы даных.
Не — GraphQL вырашае канкрэтныя праблемы, звязаныя з гнуткімі патрэбамі ў уклаўшаных даных, але REST застаецца прасцейшым і цалкам дастатковым для многіх праграм.
Звычайна так на пачатку, паскольку ён уводзіць новыя паняцці, хаця многія распрацоўшчыкі лічаць яго інтуітыўным, калі разумеюць асноўную мадэль запытаў.
Так — некаторыя сістэмы выкарыстоўваюць абодва падыходы, выбіраючы REST або GraphQL для розных канкрэтных патрэб у межах адной агульнай праграмы.
Часта так — адзін запыт GraphQL можа атрымаць менавіта тыя ўклаўшаныя даныя, якія патрэбны праграме, пазбягаючы шматлікіх асобных запытаў REST.
Не — REST застаецца вельмі шырока выкарыстоўваным і добра падыходзіць для многіх праграм; GraphQL — гэта альтэрнатыўны падыход, а не поўная замена.
REST часта прасцейшы і дастатковы для простых, прадказальных патрэб у даных без дадатковай складанасці GraphQL.
Паглядзіце на рэальную экасістэму API, пабудаваную з наўмыснымі, практычнымі тэхналагічнымі рашэннямі.
Даслядуйце панэль кіравання NOXEL360 →