Dizayn API: REST vs GraphQL vs gRPC — Kak Vybrat
REST, GraphQL i gRPC reshayut raznyye problemy. Eto rukovodstvo sravnivayet ikh dizayn-filosofii, kompromissy i idealnyye sluchai ispolzovaniya, chtoby vy mogli prinyat obosnovannoye resheniye dlya vashego sleduyushchego API.
Kazhdoye sovremennoye prilozheniye obshchayetsya s drugimi prilozheniyami cherez API. Vopros uzhe ne v tom, stroit li API, a v tom, kakoy stil API stroit. REST byl standartom po umolchaniyu boleye desyati let. GraphQL poyavilsya kak otvet na negibkost REST. gRPC primimayet sovershenno drugoy podkhod, osnovannyy na HTTP/2 i protokol bufferakh. Vybor mezhdu nimi trebuyet ponimaniya ne tolko sintaksisa, no i lezhashchey v osnove filosofii dizayna, kotoruyu kazhdyy iz nikh predstavlyayet.
Eto rukovodstvo razbirayet kazhdyy protokol s tochki zreniya dizayna: kak vy strukturiruyete resursy ili skhemy, kak klienty vzaimodeystvuyut s vashim API, kako vy rabotayete s versiyami i paginatsiyey, i kak trebovaniya k rabote v realnom vremenii vliyayut na resheniye. K kontsu u vas budet ramka dlya vybora pravilnogo instrumenta pod vashi konkretnyye ogranicheniya.
REST: Resursno-oriyentirovannyy dizayn, kotoryy ponimayet veb
REST — Representational State Transfer — eto ne protokol. Eto arkhitekturnyy stil, opredelyonnyy Royem Fildingom v yego doktorskoy dissertatsii 2000 goda. Osnovnaya ideya v tom, chto vy modeliruyete svoy domen kak resursy, kazhdyy identificirovannyy URL, i manipuliruyete etimi resursami cherez yedinyy nabor HTTP-verbov: GET, POST, PUT, PATCH i DELETE.
Khoroshiy dizayn REST API — eto resursno-oriyentirovannyy dizayn. Vy ne proyektiruyete tochki vkhoda vokrug deystviy — vy proyektiruyete tochki vkhoda vokrug sushchestvitelnykh. Vmesto /createUser ili /getUserById vy delayete POST /users i GET /users/:id. Eto kazhetsya nebolshim razlichiyem, no gluboko vliyayet na to, kak API masshtabiruyetsya, dokumetiruyetsya i kak klienty uchatsya yego ispolzovat.
