Автоматты аударма пайдаланылды

REST API vs GraphQL: қарапайым сөздермен

Клиент (мысалы, веб-бағдарлама) мен сервер арасындағы өзара әрекеттесу туралы сөз болғанда, екі танымал тәсілді айналып өту мүмкін емес: REST API және GraphQL. Олардың екеуі де бір мәселені шешеді — клиент пен сервер арасында деректерді беру, бірақ олар мұны басқаша жасайды. Олардың айырмашылықтарын түсіну үшін қарапайым ұқсастықтарды қолдана отырып, бәрін сөрелерден бөліп алайық.

Кітапхана мен API арасында қандай ортақ нәрсе бар?

Сіз кітапханада екеніңізді елестетіп көріңіз. Сіз кітапты алғыңыз келеді, бірақ сіз жай ғана қоймаға кіріп, оны іздей бастай алмайсыз. Оның орнына сіз кітаптардың қай жерде сақталатынын білетін және сізге қажет кітапты тез таба алатын кітапханашыға барасыз. Бұл жағдайда кітапханашы API (Application Programming Interface) болып табылады. Ол сіз (клиент) мен кітаптар (сервер) арасындағы делдал ретінде әрекет етеді.

API қолданбаларға сұраулар мен жауаптар үшін нақты ережелер беру арқылы бір-бірімен "байланысуға" көмектеседі. Мысалы, ауа-райы сайтын ашқан кезде браузер ағымдағы температура деректерін алу үшін API арқылы серверге сұрау жібереді. API болмаса, мұндай өзара әрекеттесуді ұйымдастыру әлдеқайда қиын болар еді.

Енді біз API не екенін түсіндік, екі танымал тәсілді салыстырайық: REST және GraphQL.REST API: ол қалай жұмыс істейді?

REST (Representational State Transfer) — стандартты HTTP әдістеріне сүйенетін архитектуралық стиль: GET (деректерді алу), post (деректерді жасау), PUT/PATCH (Деректерді жаңарту) және DELETE (деректерді жою).

Кітапханамен ұқсастыққа оралу. Сізде кітаптар сақталатын алдын ала анықталған сөрелердің тізімі бар деп елестетіп көріңіз. Егер сізге белгілі бір кітап қажет болса, сіз кітапханашыға барып: "маған №3 сөреден кітап беріңіз"деп айтасыз. Кітапханашы оны алып, сізге береді. Бұл REST API-ге ұқсас: сізде бекітілген "сөрелер" (соңғы нүктелер) бар және сіз сол жерден деректерді сұрайсыз.Мысал: GET / users-барлық пайдаланушылардың тізімін алыңыз.GET / users / 1-пайдаланушы туралы ақпаратты id арқылы алыңыз

1.Post / users-жаңа пайдаланушы жасаңыз.REST ыңғайлы, себебі ол болжамды және оңай құрылымдалған. Дегенмен, оның шектеулері бар. Мысалы, бір уақытта бірнеше "сөрелерден" деректерді алу қажет болса, бірнеше сұрау салу керек. Бұл тиімсіз болуы мүмкін, әсіресе деректер шұғыл қажет болса.GraphQL: ол қалай жұмыс істейді?GraphQL-бұл икемді тәсіл. Бекітілген эндпоинттерге сенудің орнына, graphql клиентке қандай деректер қажет екенін дәл көрсетуге мүмкіндік береді. Біздің кітапханаға оралу. Енді кітапханашыға не айта алатыныңызды елестетіп көріңіз:"маған" өнер тарихы "кітабының 5-тарауы, сондай-ақ" жаңадан бастаушыларға арналған Физика "кітабының алғашқы екі беті керек". Кітапханашы сіз сұрағанның бәрін жинап, сізге бір пакетте береді.Graphql-де сіз қандай деректерді алғыңыз келетінін сипаттайтын бір сұрау жібересіз. Сервер бұл сұрауды талдайды және сіз сұраған нәрсені ғана қайтарады. Бұл, әсіресе, әртүрлі көздерден деректерді жинау қажет болса немесе тасымалданатын деректер көлемін азайтуды қаласаңыз пайдалы.

Graphql сұрауының мысалы:

graphqlCopy123456789101112{user(id: 1)

{nameemailposts

{titlecomments

{text}}}}

Бұл сұрау Пайдаланушының аты мен электрондық поштасын, олардың жазбаларының аттарын және сол жазбаларға түсініктеме мәтіндерін алады — барлығы бір сұрауда.REST қашан қолданылады?

REST жобалар үшін өте жақсы, мұнда:деректер құрылымы салыстырмалы түрде қарапайым және тұрақты.Болжамдылық пен стандарттау қажет.Әзірлеуді шағын топ жүргізеді және серверді күрделі конфигурациялаудың қажеті жоқ.Мысалы, егер сіз блог немесе интернет-дүкен құрсаңыз, REST API тамаша таңдау болады. Оны жүзеге асыру оңай және жақсы құжатталған.Graphql қашан қолданылады?Graphql жобалар үшін өте қолайлы, мұнда:

Деректер күрделі және өзара байланысты (мысалы, әлеуметтік медиа).

Клиенттер тек деректердің белгілі бір бөліктерін алуы керек.Т

серверге сұраныстар санын азайту қажет.

Мысалы, егер сіз трафик пен жүктеу уақытын үнемдеу маңызды мобильді қосымшаны жасасаңыз, GraphQL-бұл тамаша шешім.

Екі тәсілдің де артықшылықтары бар. REST-бұл көп жағдайда швейцариялық сағат сияқты жұмыс істейтін классика. GraphQL-бұл икемділік пен деректерді басқаруды ұсынатын инновация. Олардың арасындағы таңдау сіздің қажеттіліктеріңізге байланысты: егер қарапайымдылық пен стандарттау маңызды болса, REST таңдаңыз; Егер икемділік пен тиімділік қажет болса, graphql-ге назар аударыңыз.

Қай технологияны таңдасаңыз да, ең бастысы-оның принциптерін түсіну және оны іс жүзінде дұрыс қолдану. Өйткені, кітапхана сияқты, сәттілік тек кітаптарға ғана емес, оларды қалай іздеуге де байланысты!

Пікірлер 7

Кіру пікір қалдыру үшін

ваау

Жауап беру

не очень то и просто

Жауап беру

GraphQL - очень крутая штука. Использовал в нескольких проектах. Дает очень хорошую гибкость и контроль.

Жауап беру

классная статья!

Жауап беру