Treffer: Design and Implementation of Centralized APIs Platform and Application Portal
https://aaltodoc.aalto.fi/handle/123456789/40892
URN:NBN:fi:aalto-201910275896
1273843909
From OAIster®, provided by the OCLC Cooperative.
Weitere Informationen
Centralized APIs is a solution for KPMG ("Company") to tackle the problem that multiple departments of the Company are developing API logic to public and proprietary databases in parallel. API logic consists of code and logic required to fetch information from an API. The main requirement is that the API logic for each API is developed only once. In addition, Single Sign-On authentication to the Company' systems is needed and API usage must be tracked on a user and a query level. Emphasis must be given to ease of development: development of new API logic to the centralized APIs should be easier than before. This thesis has three goals. First, to design and evaluate the best fitting architecture to fulfil all requirements; second to implement a functioning centralized APIs platform; and third, to implement a real-world example API logic with a new API wrapped around it ("internal API") inside the centralized APIs platform. Internal API will act as a template for future internal API implementations to make the development as easy as possible. Also, a Minimum Viable Product (MVP) level implementation of an application portal (front-end) that utilizes the internal API is implemented. It is also used to evaluate the centralized APIs solution. Internal APIs are implemented as microservices based on Python Flask web back-end framework located in the centralized APIs platform. It includes authentication, documentation, and API gateway services. The application portal is a Single-Page Application (SPA) developed on React front-end framework. Evaluation of the solutions reveals that all requirements are fulfilled for the centralized APIs and all but one is fulfilled for the application portal. Ease of development of internal APIs and Applications is analysed with examples of how they can be implemented. Demand for both solutions exists within the Company.
KPMG on huomannut, että eri osastoilla kehitetään samanaikaisesti rajapinta-ohjelmia, jotka hakevat tietoa sekä julkisista että maksullisista rajapinnoista. Keskitetty rajapinta-alusta (centralized APIs) on ratkaisu tämän päällekkäisen työn poistamiseksi. Muita vaatimuksia ratkaisulle ovat kertakirjautuminen (Single Sign-On) muiden yhtiön järjestelmien kanssa ja rajapintaan tehtyjen kyselyiden tilastoiminen käyttäjäkohtaisesti. Yhtiölle on tärkeää, että uusien rajapinta-ohjelmien kehitystyön tulisi olla helpompaa alustalla kuin ilman sitä. Tälle diplomityölle on asetettu kolme tavoitetta, jotka sisältävät suunnittelua sekä teknistä toteutusta. Ensimmäinen tavoite on suunnitella ratkaisu, joka täyttää kaikki vaatimukset. Seuraava tavoite on alustan ensimmäisen version tekninen toteuttaminen suunnitelman perusteella. Viimeinen tavoite on uuden rajapinta-ohjelman toteuttaminen alustan päälle. Rajapinta-ohjelman tulee olla helppokäyttöinen ja hyvin dokumentoitu, jotta sitä voi käyttää pohjana tulevissa rajapinta-ohjelmissa. Näiden kolmen vaatimuksen lisäksi tavoitteena on toteuttaa selaimessa toimiva applikaatio, joka hyödyntää uutta rajapinta-ohjelmaa. Tämän applikaation vaatimukset ovat, että se toimii testiympäristössä ja että sillä voidaan todentaa rajapinta-ohjelman toimivuus. Rajapinta-ohjelmat ovat mikropalveluita (microservices) ja ne ovat toteutetty Python ohjelmointikielen Flask ohjelmistokirjastolla joka on tarkoitettu rajapintojen toteuttamiseen. Rajapinta-alustassa on seuraavat ominaisuudet: käyttäjän todentaminen, rajapinta-ohjelmien keskitetty dokumentointi sekä yhdyskäytävä-ohjelma mikropalveluiden ja julkisen internetin välissä. Selaimessa toimiva applikaatio on toteutettu React ohjelmistokirjastolla ja se piirtää nettisivun selaimessa siten, että selaimen ei tarvitse päivittää sivua, kun käyttäjä navigoi sivujen välillä (Single-Page App). Rajapinta-alustan arvioinnin perusteella kaikki yhtiön vaatimukset täyttyvät. Selaimessa toimivan applikaation osal