OpenAPI-spesifikaation mukaisten rajapintojen toteuttaminen Djangolla ja Django REST frameworkilla
Viikeri, Teemu (2025)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025060319986
https://urn.fi/URN:NBN:fi:amk-2025060319986
Tiivistelmä
Tämän opinnäytetyön tavoitteena oli tutkia ja selventää OpenAPI-spesifikaation mukaisten rajapintojen toteutusta, kuvaamista ja dokumentointia Django-verkkosovelluskehyksen ja erityisesti Django REST framework -kehyksen avulla. Työssä perehdyttiin rajapintojen yleiseen merkitykseen ohjelmistokehityksessä, HTTP-protokollan toimintaperiaatteisiin ja REST-arkkitehtuurityyliin.
Opinnäytetyössä käsiteltiin OpenAPI-spesifikaatioon liittyvää historiaa, rakennetta ja sen tarjoamia hyötyjä rajapintojen suunnittelussa ja hallinnassa. Erityistä huomiota kiinnitettiin OpenAPI-spesifikaation ekosysteemin työkaluihin, kuten Swagger UI:n automaattiseen dokumentaation generointiin, Prismin kaltaisiin validaatio- ja jäljittelypalvelimien luontityökaluihin sekä OpenAPI Generatorin kykyyn luoda SDK-kirjastoja ja palvelinrunkoja, jotka nopeuttavat kehitysprosessia.
Työssä selvitettiin myös Djangon ja Django REST frameworkin toimintaa ja roolia web-sovellusten ja REST-rajapintojen rakentamisessa. Django Ninja esiteltiin yhtenä Django REST frameworkin vaihtoehtona sen hyötyjen vuoksi.
Opinnäytetyössä pyrittiin tuottamaan konkreettista lisäarvoa työn tilaajalle Haltu Oy:lle, jonka tarpeena oli saada rajapintasovelluskehityksen yhteyteen parempaa rajapintadokumentaatiota. Tätä lähdettiin toteuttamaan kehittämällä keskitetysti käytössä olevaa lähdekoodin mallipohjaa, jota kuka tahansa yrityksessä pystyy hyödyntämään. Kehitetty mallipohja sisältää kaikki tarvittavat osat automaattisen OpenAPI-dokumentaation luomiseen osana Django REST frameworkia hyödyntävää Django-sovellusta. Käytännön sovellus kuvaa etenkin mallipohjan kehittämisen prosessia ja toteutukseen vaikuttavia seikkoja.
Pohdinta-osiossa käsitellään työn johtopäätöksiä ja mahdollisia jatkokehitys ja -tutkimusmahdollisuuksia, jotka liittyvät OpenAPI-spesifikaation hyödyntämiseen Django- ja Django REST framework -projekteissa.
Opinnäytetyössä käsiteltiin OpenAPI-spesifikaatioon liittyvää historiaa, rakennetta ja sen tarjoamia hyötyjä rajapintojen suunnittelussa ja hallinnassa. Erityistä huomiota kiinnitettiin OpenAPI-spesifikaation ekosysteemin työkaluihin, kuten Swagger UI:n automaattiseen dokumentaation generointiin, Prismin kaltaisiin validaatio- ja jäljittelypalvelimien luontityökaluihin sekä OpenAPI Generatorin kykyyn luoda SDK-kirjastoja ja palvelinrunkoja, jotka nopeuttavat kehitysprosessia.
Työssä selvitettiin myös Djangon ja Django REST frameworkin toimintaa ja roolia web-sovellusten ja REST-rajapintojen rakentamisessa. Django Ninja esiteltiin yhtenä Django REST frameworkin vaihtoehtona sen hyötyjen vuoksi.
Opinnäytetyössä pyrittiin tuottamaan konkreettista lisäarvoa työn tilaajalle Haltu Oy:lle, jonka tarpeena oli saada rajapintasovelluskehityksen yhteyteen parempaa rajapintadokumentaatiota. Tätä lähdettiin toteuttamaan kehittämällä keskitetysti käytössä olevaa lähdekoodin mallipohjaa, jota kuka tahansa yrityksessä pystyy hyödyntämään. Kehitetty mallipohja sisältää kaikki tarvittavat osat automaattisen OpenAPI-dokumentaation luomiseen osana Django REST frameworkia hyödyntävää Django-sovellusta. Käytännön sovellus kuvaa etenkin mallipohjan kehittämisen prosessia ja toteutukseen vaikuttavia seikkoja.
Pohdinta-osiossa käsitellään työn johtopäätöksiä ja mahdollisia jatkokehitys ja -tutkimusmahdollisuuksia, jotka liittyvät OpenAPI-spesifikaation hyödyntämiseen Django- ja Django REST framework -projekteissa.
