Python Flask -kehyksen soveltuminen REST-rajapinnan kehittämiseen
Jakonen, Sami (2021)
Jakonen, Sami
2021
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ä
2021-12-19
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202112129139
https://urn.fi/URN:NBN:fi:tuni-202112129139
Tiivistelmä
Python on yleisesti suosittu ohjelmointikieli, jonka suurimpia käyttökohteita on verkkosovellusten kehittäminen. Kielelle on tarjolla useita viitekehyksiä, joista yleisimpiin lukeutuu verkkopalveluiden kehittämiseen tarkoitettu Flask. Tässä työssä tutkittiin Python Flask -viitekehyksen soveltuvuutta REST-mallin mukaisen rajapinnan ohjelmointiin. REST on yleinen arkkitehtuurimalli verkkorajapintojen toteuttamista varten.
Työ jakaantuu kolmeen osaan. Ensimmäiseksi työssä esiteltiin verkkorajapintoja yleisesti ja tehtiin katsaus niihin liittyviin protokolliin sekä käytänteisiin. Verkkorajapinnalla voidaan yleisesti tarkoittaa rajapintaa, jonka välityksellä palvelin ja sen käyttäjä ovat vuorovaikutuksessa keskenään. Koska tässä työssä tarkasteltiin REST-mallia, tarkastelu kohdistui erityisesti niin kutsuttuihin ohjelmointirajapintoihin, joissa verkko-ohjelmiston eri osat keskustelevat keskenään.
Työssä tarkasteltiin erityisesti HTTP-protokollaa, joka on Internetin tärkeimpiä teknologioita. HTTP on myös merkittävä protokolla REST-rajapintojen kannalta, kuten työssä huomataan. Yleisesti ottaen REST-mallin rajapinnat hyödyntävät rajapintakommunikaatiossa HTTP:aa ja on luontevaa pyrkiä käyttämään sen ominaisuuksia laajasti.
Työn toisen osan lopussa esitellään Python-ohjelmointikieli verkko-ohjelmoinnin näkökulmasta ja syvennytään Flask-viitekehyksen ominaisuuksiin. Flask on yksinkertainen ja yleiskäyttöinen verkkokehys, jolle on tarjolla useita erilaisia lisäosia. Itsessään Flask sisältää vain kaiken tarvittavan verkko-ohjelmiston toteuttamista varten ja tässä työssä tutkittiin, kuinka hyvin kehys vastaa REST-rajapintaohjelmoinnin vaatimuksiin.
Työssä arvioitiin Flaskin REST-yhteensopivuutta tarkastelemalla Flaskilla toteutettuja esimerkkiohjelmien osia sekä kehyksen dokumentaatiota. Tutkimuksessa nojattiin REST-arkkitehtuurimallin rajoitteisiin sekä muihin hyviin REST-ohjelmointikäytänteisiin. Mittareina tutkimuksessa ovat koodin toistuvuuden määrä, Flaskin valmiiden luokkien, funktioiden sekä metodien suora soveltuminen REST-rajapintatoteutukseen. Tutkimuksessa tarkasteltiin myös Flaskin käyttämää termistöä sekä ominaisuuksien nimissä että dokumentaatiossa.
Tehty tutkimus osoittaa, että rajapinnan toteuttaminen on mahdollista ja Flask soveltuu varsinkin yksinkertaisiin REST-ratkaisuihin hyvin. Flask vastaa yleisesti ottaen hyvin REST:n rajoitteisiin ja sillä voi ohjelmoida hyvien REST-käytänteiden mukaisia ohjelmia. Ohjelman toteutuksen kanssa kuitenkin tulee vastaan koodin toistuvuusongelmia. Lisäksi selkeiden, juuri REST-malliin tarkoitettujen, ratkaisujen puute tekee koodista monimutkaista. Flask on kuitenkin varteenotettava perusta REST-rajapinnalle, kun siihen liittää muita lisäosia tai kirjastoja.
Työ jakaantuu kolmeen osaan. Ensimmäiseksi työssä esiteltiin verkkorajapintoja yleisesti ja tehtiin katsaus niihin liittyviin protokolliin sekä käytänteisiin. Verkkorajapinnalla voidaan yleisesti tarkoittaa rajapintaa, jonka välityksellä palvelin ja sen käyttäjä ovat vuorovaikutuksessa keskenään. Koska tässä työssä tarkasteltiin REST-mallia, tarkastelu kohdistui erityisesti niin kutsuttuihin ohjelmointirajapintoihin, joissa verkko-ohjelmiston eri osat keskustelevat keskenään.
Työssä tarkasteltiin erityisesti HTTP-protokollaa, joka on Internetin tärkeimpiä teknologioita. HTTP on myös merkittävä protokolla REST-rajapintojen kannalta, kuten työssä huomataan. Yleisesti ottaen REST-mallin rajapinnat hyödyntävät rajapintakommunikaatiossa HTTP:aa ja on luontevaa pyrkiä käyttämään sen ominaisuuksia laajasti.
Työn toisen osan lopussa esitellään Python-ohjelmointikieli verkko-ohjelmoinnin näkökulmasta ja syvennytään Flask-viitekehyksen ominaisuuksiin. Flask on yksinkertainen ja yleiskäyttöinen verkkokehys, jolle on tarjolla useita erilaisia lisäosia. Itsessään Flask sisältää vain kaiken tarvittavan verkko-ohjelmiston toteuttamista varten ja tässä työssä tutkittiin, kuinka hyvin kehys vastaa REST-rajapintaohjelmoinnin vaatimuksiin.
Työssä arvioitiin Flaskin REST-yhteensopivuutta tarkastelemalla Flaskilla toteutettuja esimerkkiohjelmien osia sekä kehyksen dokumentaatiota. Tutkimuksessa nojattiin REST-arkkitehtuurimallin rajoitteisiin sekä muihin hyviin REST-ohjelmointikäytänteisiin. Mittareina tutkimuksessa ovat koodin toistuvuuden määrä, Flaskin valmiiden luokkien, funktioiden sekä metodien suora soveltuminen REST-rajapintatoteutukseen. Tutkimuksessa tarkasteltiin myös Flaskin käyttämää termistöä sekä ominaisuuksien nimissä että dokumentaatiossa.
Tehty tutkimus osoittaa, että rajapinnan toteuttaminen on mahdollista ja Flask soveltuu varsinkin yksinkertaisiin REST-ratkaisuihin hyvin. Flask vastaa yleisesti ottaen hyvin REST:n rajoitteisiin ja sillä voi ohjelmoida hyvien REST-käytänteiden mukaisia ohjelmia. Ohjelman toteutuksen kanssa kuitenkin tulee vastaan koodin toistuvuusongelmia. Lisäksi selkeiden, juuri REST-malliin tarkoitettujen, ratkaisujen puute tekee koodista monimutkaista. Flask on kuitenkin varteenotettava perusta REST-rajapinnalle, kun siihen liittää muita lisäosia tai kirjastoja.
Kokoelmat
- Kandidaatintutkielmat [8381]