RESTful APIn ja GraphQL-rajapinnan kehitystehokkuuden vertailu: SpringBoot web-palvelin toteutukset
Hakala, Micko (2024)
Hakala, Micko
2024
Filosofian maisteriohjelma - Master's Programme in Philosophy
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ä
2024-06-05
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202405246260
https://urn.fi/URN:NBN:fi:tuni-202405246260
Tiivistelmä
Tässä pro gradu -tutkielmassa tarkastellaan RESTful API:n ja GraphQL-tekniikoiden eroja ja niiden vaikutusta kehitystehokkuuteen SpringBoot web-palvelimien toteutuksessa. Työssä analysoidaan kumpaakin teknologiaa käyttäen niiden perusominaisuuksia, arkkitehtuurista suunnittelua sekä toteutuksen vaikutusta sovelluskehitykseen. Vertailun keskiössä on teknologioiden kyky vastata nykyaikaisen ohjelmistokehityksen vaatimuksiin, mukaan lukien joustavuus, ylläpidettävyys ja kehittäjäkokemus.
REST (Representational State Transfer) on pitkään ollut vallitseva arkkitehtuurityyli web-palveluiden kehittämisessä, ja se perustuu tilattomaan kommunikaatioon, joka käyttää HTTP-protokollan metodeja resurssien käsittelyyn. GraphQL, toisaalta, tarjoaa modernin lähestymistavan, jossa kehittäjät voivat tarkkaan määritellä, mitä tietoja sovellus tarvitsee, mikä tehostaa datakäsittelyä ja vähentää tarpeetonta dataliikennettä.
Työn kokeellinen osuus suoritettiin alustamalla ensin identtiset web-palvelinsovellukset käyttäen Kotlinia ja SpringBoottia. Alustuksen jälkeen toteutettiin rajapinnat RESTful API:a sekä GraphQL:ää hyödyntäen, joista tämän tutkimuksen vertailu tehtiin. Toteutus ja testaus osoittivat, että GraphQL tarjoaa etuja kehitystehokkuudessa erityisesti sovelluksissa, joissa käyttöliittymä vaatii dynaamista ja monipuolista datan käsittelyä. GraphQL:n avulla saavutettiin parempi datan haun tehokkuus ja kehittäjäkokemus, koska se vähensi tarvetta monille eri päätepisteille ja mahdollisti datakyselyiden tarkemman räätälöinnin.
Tämä tutkielma tarjoaa ohjelmistokehittäjille ja IT-päättäjille arvokasta tietoa siitä, miten kumpikin teknologia soveltuu kehitystehokkuudeltaan ohjelmistokehitykseen. Teknologian valinta riippuu lopulta projektin erityisvaatimuksista, kehitystiimin kokemuksesta ja tavoitellusta joustavuudesta datan käsittelyssä. Vertailu antaa konkreettisia suosituksia siitä, miten RESTful API:t ja GraphQL voidaan integroida osaksi yritysten IT-infrastruktuuria, tukien näin tehokasta sovelluskehitystä ja ylläpitoa. RESTful API soveltuu yksinkertaisempiin web-palveluihin, kun taas GraphQL-palvelin kannattaa ottaa käyttöön järjestelmissä, joissa on useita mikropalveluita omien resurssitarpeiden kanssa.
REST (Representational State Transfer) on pitkään ollut vallitseva arkkitehtuurityyli web-palveluiden kehittämisessä, ja se perustuu tilattomaan kommunikaatioon, joka käyttää HTTP-protokollan metodeja resurssien käsittelyyn. GraphQL, toisaalta, tarjoaa modernin lähestymistavan, jossa kehittäjät voivat tarkkaan määritellä, mitä tietoja sovellus tarvitsee, mikä tehostaa datakäsittelyä ja vähentää tarpeetonta dataliikennettä.
Työn kokeellinen osuus suoritettiin alustamalla ensin identtiset web-palvelinsovellukset käyttäen Kotlinia ja SpringBoottia. Alustuksen jälkeen toteutettiin rajapinnat RESTful API:a sekä GraphQL:ää hyödyntäen, joista tämän tutkimuksen vertailu tehtiin. Toteutus ja testaus osoittivat, että GraphQL tarjoaa etuja kehitystehokkuudessa erityisesti sovelluksissa, joissa käyttöliittymä vaatii dynaamista ja monipuolista datan käsittelyä. GraphQL:n avulla saavutettiin parempi datan haun tehokkuus ja kehittäjäkokemus, koska se vähensi tarvetta monille eri päätepisteille ja mahdollisti datakyselyiden tarkemman räätälöinnin.
Tämä tutkielma tarjoaa ohjelmistokehittäjille ja IT-päättäjille arvokasta tietoa siitä, miten kumpikin teknologia soveltuu kehitystehokkuudeltaan ohjelmistokehitykseen. Teknologian valinta riippuu lopulta projektin erityisvaatimuksista, kehitystiimin kokemuksesta ja tavoitellusta joustavuudesta datan käsittelyssä. Vertailu antaa konkreettisia suosituksia siitä, miten RESTful API:t ja GraphQL voidaan integroida osaksi yritysten IT-infrastruktuuria, tukien näin tehokasta sovelluskehitystä ja ylläpitoa. RESTful API soveltuu yksinkertaisempiin web-palveluihin, kun taas GraphQL-palvelin kannattaa ottaa käyttöön järjestelmissä, joissa on useita mikropalveluita omien resurssitarpeiden kanssa.