REST-rajapinnan luominen toiminnanohjausjärjestelmään : case Profio360
Harjula, Sampo (2022)
Harjula, Sampo
2022
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-202205057453
https://urn.fi/URN:NBN:fi:amk-202205057453
Tiivistelmä
Työn tavoite oli rakentaa uusi rajapinta CGI Suomi Oy yrityksen CGI Profio360 toiminnanohjausjärjestelmään. Kehitystyö aloitettiin kesäkuussa 2019.
Olemassa olevan rajapinnan ominaisuuksia tutkittiin REST-rajapintojen määritysten mukaan. Rajapinnat todettiin liian hitaiksi ja vaikeaksi mukauttaa uuteen käyttöön.
Rajapintaluokka rakennettiin tunnistamaan haluttu palvelu HTTP-kutsun osoitteesta. Rajapintaan luotiin dynaaminen hakuluokka, joka määrittää usean tietokantataulun liittämisen toisiinsa ja halutut hakuparametrit jokaiselle taululle. Hakuluokka todisti nopeutensa tulosjoukon rajoittamisen ansiosta.
Tietokannan manipulaatioon luotiin uusi Entity-luokka, joka toimi oletuksena turvallisesti. Luokan elinkaareen on rakennettu useita tapahtumia, johon voidaan syöttää omaa koodia.
Uusia ja vanhoja rajapintoja testattiin selaimen kehittäjätyökalulla. Uusi rajapinta oli 40–60 kertaa nopeampi verrattuna vanhaan rajapintaan. The objective of this thesis was to implement a new API for CGI Suomi Oy company’s CGI Profio360 ERP software. Design work was started in June of 2019.
Current API was researched using definitions of REST. It was concluded that current APIs are too slow and difficult to modify for new usage.
API class was built to recognize any service directly from the called URL address. A new dynamic Query class was built to use and join multiple database tables. Search parameters are predefined for each table. Query class was tested to be fast because it can restrict the result set.
Database manipulation was handled using an Entity class, which is a secure way to update database values. Entity lifecycle was built with multiple events that can inject custom code to each class.
Current and New APIs were performance tested using a browser’s developer tools. New API performed 40-60 times faster when compared to a current API.
Olemassa olevan rajapinnan ominaisuuksia tutkittiin REST-rajapintojen määritysten mukaan. Rajapinnat todettiin liian hitaiksi ja vaikeaksi mukauttaa uuteen käyttöön.
Rajapintaluokka rakennettiin tunnistamaan haluttu palvelu HTTP-kutsun osoitteesta. Rajapintaan luotiin dynaaminen hakuluokka, joka määrittää usean tietokantataulun liittämisen toisiinsa ja halutut hakuparametrit jokaiselle taululle. Hakuluokka todisti nopeutensa tulosjoukon rajoittamisen ansiosta.
Tietokannan manipulaatioon luotiin uusi Entity-luokka, joka toimi oletuksena turvallisesti. Luokan elinkaareen on rakennettu useita tapahtumia, johon voidaan syöttää omaa koodia.
Uusia ja vanhoja rajapintoja testattiin selaimen kehittäjätyökalulla. Uusi rajapinta oli 40–60 kertaa nopeampi verrattuna vanhaan rajapintaan.
Current API was researched using definitions of REST. It was concluded that current APIs are too slow and difficult to modify for new usage.
API class was built to recognize any service directly from the called URL address. A new dynamic Query class was built to use and join multiple database tables. Search parameters are predefined for each table. Query class was tested to be fast because it can restrict the result set.
Database manipulation was handled using an Entity class, which is a secure way to update database values. Entity lifecycle was built with multiple events that can inject custom code to each class.
Current and New APIs were performance tested using a browser’s developer tools. New API performed 40-60 times faster when compared to a current API.