arvutiteaduse instituudi lõputööderegister


Rikkalike uuenduste avaldamine käskluste kaudu REST APIs
Nimi Michael Ngugi Michuki
Kokkuvõte Paari viimase aastaga on Representational State Transfer (REST) muutunud Application Programming Interface’i (API) disaini liidriks tänu lihtsusele ja mitmekülgsusele. See on hõlbustanud API’sid URL’ide juures, mis kasutavad selliseid HTTP meetodeid nagu GET, POST, PUT ja DELETE. See on viinud lihtsustatud mudelite toomiseni klientide tarkvara arendajatele. Siiski on kaks probleemi, mida REST ainuüksi ei lahenda. Esimene neist on standardiseeritud vastused. Enamikel ettevõtetest on oma API’d, tavaliselt JSON tüüpi vastusega, mis ühtib nende andmemudeliga. Hea näide on see, kui Twitter’i API klient ei ole võimeline otseselt ühendust võtma Reddit API’ga ja vastupidi. Seetõttu teevad paljud API kliendid peaaegu sama asja. Sellest tulenevalt leiame me olukorra, kus arvukad arendajad kordavad sedasama saavutust. Järgmine probleem on API’de sidumine. World Wide Web’i Consortsium’i (W3C) kohaselt JSON ei sisalda sisseehitatud toetust hüperlinkidele, mis moodustavad põhilise Web’i ehitusbloki. Nende kahe puudused tähendavad seda, et API lõpp-punktid on seotud API dokumentatsiooniga, seega on kasutajad sunnitud hoolikalt läbi lugema mitmeid lehekülgi API dokumentatsioone, et mõista API lõpp-punktide vahelist suhet ning saada aru, mis tegevused on vajalikud juurdepääsuks antud vahendile. Kokkuvõttes me näeme, et kaasaegsetel rakendustel, arendatud API’d, on uuenduste käsklused ühendatud meetoditega, mis manipuleerivad otseselt domeeniga. Selles uuringus arutleme uuendusi otsivate käskluste probleemi üle ja püüame leida võimalusi, et täiustada seda rikkalike uuendusmeetodite ja erinevaid lähenemisi kasutavate, uuendusi otsivate, käskluste kaudu. Esimese panusena selles uurimustöös, tuleb võtta hüpermeedia formaat Collection +JSON ja parendada seda nii, et see mahutaks rohkem uuenduste käsklusi läbi üheainsa REST uuenduse meetodi dünaamiliselt nii API’s kui kliendi tarkvaras. Lihtsalt öeldes me kooskõlastame REST’i lihtsuse Domain Driven Development and Command Query Responsibility Segregation’i (CQRS) rikkalike kontseptidega. Me loome märkustel põhineva ressursi pakkija, mis genereerib käsud dünaamiliselt kasutades jagatud kontrollijat ja liidest, mis vähendab koodi, mida vajatakse laadimisel valdkonna teenuse meetodina API’sse.
Lõputöö keel inglise
Lõputöö tüüp Magister - Tarkvaratehnika
Juhendaja(d) Luciano Garcia Bañuelos
Kaitsmise aasta 2017
PDF lisad