REST- ja GraphQL-rajapintojen vertailu
Naumanen, Toni (2021)
Naumanen, Toni
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021110819416
https://urn.fi/URN:NBN:fi:amk-2021110819416
Tiivistelmä
Insinöörityön aiheena oli REST- ja GraphQL-rajapintojen vertailu. Tavoitteena oli selvittää, mitä REST ja GraphQL ovat sekä miten REST- ja GraphQL-rajapinnat vertautuvat toisiinsa. Työssä pohditaan, millaisiin tilanteisiin REST- ja GraphQL-rajapinnat sopivat sekä mitä ovat näiden vahvuudet ja heikkoudet.
Aluksi työssä annetaan yleiskuva REST-arkkitehtuurityylistä ja GraphQL-kyselykielestä. Tämän jälkeen REST- ja GraphQL-rajapintoja vertaillaan datan hakemisen, versioinnin, dokumentoinnin ja asiakaspuolen monimutkaisuuden kannalta. Lopuksi pohditaan, millaisiin tarkoituksiin rajapinnat soveltuvat.
Vertailussa havaittiin, että datan hakeminen REST-rajapinnoista voi olla suoraviivaisempaa kuin GraphQL-rajapinnoista, mutta GraphQL-rajapinnat tarjoavat enemmän ominaisuuksia. Koska GraphQL-rajapinnat tarjoavat enemmän ominaisuuksia, joudutaan myös asiakaspuolen eteen näkemään enemmän vaivaa kuin REST-rajapintojen asiakaspuolella.
Tuloksien perusteella todettiin, että rajapinnan valinnassa tulisi miettiä, mihin tarkoitukseen ja millaisia käyttäjiä rajapinnalla tulee olemaan. REST-rajapinnat soveltuvat hyvin tilanteisiin, joissa dataa tullaan käsittelemään pääasiassa CRUD-operaatioilla. GraphQL-rajapinnat soveltuvat hyvin tilanteisiin, joissa kehityksen prioriteettina ovat asiakaspuolen tarpeet.
Aluksi työssä annetaan yleiskuva REST-arkkitehtuurityylistä ja GraphQL-kyselykielestä. Tämän jälkeen REST- ja GraphQL-rajapintoja vertaillaan datan hakemisen, versioinnin, dokumentoinnin ja asiakaspuolen monimutkaisuuden kannalta. Lopuksi pohditaan, millaisiin tarkoituksiin rajapinnat soveltuvat.
Vertailussa havaittiin, että datan hakeminen REST-rajapinnoista voi olla suoraviivaisempaa kuin GraphQL-rajapinnoista, mutta GraphQL-rajapinnat tarjoavat enemmän ominaisuuksia. Koska GraphQL-rajapinnat tarjoavat enemmän ominaisuuksia, joudutaan myös asiakaspuolen eteen näkemään enemmän vaivaa kuin REST-rajapintojen asiakaspuolella.
Tuloksien perusteella todettiin, että rajapinnan valinnassa tulisi miettiä, mihin tarkoitukseen ja millaisia käyttäjiä rajapinnalla tulee olemaan. REST-rajapinnat soveltuvat hyvin tilanteisiin, joissa dataa tullaan käsittelemään pääasiassa CRUD-operaatioilla. GraphQL-rajapinnat soveltuvat hyvin tilanteisiin, joissa kehityksen prioriteettina ovat asiakaspuolen tarpeet.