REST- ja GraphQL-rajapintojen vertailu
Keskikiikonen, Aleksi (2022)
Keskikiikonen, Aleksi
2022
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-06-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202206075531
https://urn.fi/URN:NBN:fi:tuni-202206075531
Tiivistelmä
Loppukäyttäjä hyödyntää tiedostamattaan erilaisia rajapintoja käyttäessään Internet-palveluita. Palveluntarjoajan pitää valita käyttökohteeseen soveltuva rajapinta. Oikealla rajapinnan valinnalla saatetaan saada merkittävää hyötyä tietyissä käyttökohteissa.
Tässä työssä vertaillaan REST- ja GraphQL-rajapintoja keskittyen niiden rakenteeseen ja nopeuteen. Vertailu pohjautuu aikaisemmin suoritutettuun tutkimukseen yhdistelemällä ja vertailemalla niissä esitettyjä tuloksia, sekä hyödyntäen dokumentaatiotyyppisiä nettisivuja. Valitut tutkimukset käsittelevät pääasiallisesti tai välillisesti rajapintojen nopeutta ja rakennetta.
Tutkimusten perusteella käy ilmi, että REST-rajapintojen ohjelmointi on työläämpää, kuin vastaavien GraphQL-rajapintojen ohjelmointi. Lisäksi huomataan, että REST-kyselyiden käsittely kuluttaa merkittävästi enemmän järjestelmän resursseja, kuten välimuistia, prosessoria ja tiedonsiirtoa. Toisaalta REST pystyy käsittelemään samanaikaisia pyyntöjä nopeammin ja enemmän kuin GraphQL. GraphQL käsittelee samassa ajassa vähemmän pyyntöjä, mutta sen järjestelmäresurssien käyttö on huomattavasti tasaisempaa ja pienempää.
Tutkimustulosten perusteella voidaan päätellä, että REST sopii ympäristöihin, joissa järjestelmäresursseja on saatavilla enemmän, ja käyttäjämäärät saattavat olla hetkellisesti hyvinkin suuria. Vastaavasti GraphQL soveltuu järjestelmäresursseiltaan rajoitetumpiin ympäristöihin, kuten esimerkiksi mobiili- ja IoT-laitteille suunnattuihin rajapintoihin. Rajapintojen erot näkyvät käytännössä vasta suuremmilla kävijämäärillä, eli esimerkiksi harvaan käytettävällä rajapinnalla valinnalla ei ole niin suurta merkitystä.
Tässä työssä vertaillaan REST- ja GraphQL-rajapintoja keskittyen niiden rakenteeseen ja nopeuteen. Vertailu pohjautuu aikaisemmin suoritutettuun tutkimukseen yhdistelemällä ja vertailemalla niissä esitettyjä tuloksia, sekä hyödyntäen dokumentaatiotyyppisiä nettisivuja. Valitut tutkimukset käsittelevät pääasiallisesti tai välillisesti rajapintojen nopeutta ja rakennetta.
Tutkimusten perusteella käy ilmi, että REST-rajapintojen ohjelmointi on työläämpää, kuin vastaavien GraphQL-rajapintojen ohjelmointi. Lisäksi huomataan, että REST-kyselyiden käsittely kuluttaa merkittävästi enemmän järjestelmän resursseja, kuten välimuistia, prosessoria ja tiedonsiirtoa. Toisaalta REST pystyy käsittelemään samanaikaisia pyyntöjä nopeammin ja enemmän kuin GraphQL. GraphQL käsittelee samassa ajassa vähemmän pyyntöjä, mutta sen järjestelmäresurssien käyttö on huomattavasti tasaisempaa ja pienempää.
Tutkimustulosten perusteella voidaan päätellä, että REST sopii ympäristöihin, joissa järjestelmäresursseja on saatavilla enemmän, ja käyttäjämäärät saattavat olla hetkellisesti hyvinkin suuria. Vastaavasti GraphQL soveltuu järjestelmäresursseiltaan rajoitetumpiin ympäristöihin, kuten esimerkiksi mobiili- ja IoT-laitteille suunnattuihin rajapintoihin. Rajapintojen erot näkyvät käytännössä vasta suuremmilla kävijämäärillä, eli esimerkiksi harvaan käytettävällä rajapinnalla valinnalla ei ole niin suurta merkitystä.
Kokoelmat
- Kandidaatintutkielmat [8709]