Single Page Applications are often communicating with backend servers to transfer data. To make backend services accessible for the client, the backend provides those via RESTful APIs. A lot of research and code generation tools focus on the server side of such RESTful APIs. Whereas, this thesis deals with the client-side, meaning the consumption of RESTful APIs. Consuming APIs leads to an overhead in the client when the data comes from several different APIs. This is a common case when applying the microservice architectural style or when the client accesses several third party APIs (e.g. GitHub, JIRA, Facebook, Google API etc.).
This work presents an approach to shift away the responsibility of the API consumption from the client by introducing a web service which handles the communication with the APIs as well as the data transformations. After analysing the state-of-the-art, a model-driven approach is being proposed for the generation of such a web service. Firstly, a model will be introduced describing the consumption of RESTful services. Secondly, a tool will be described to semi-automatically generate such a web service based on model-transformations. Subsequent to the presentation of the implementation, the approach will be evaluated by developing a sample application with the help of the tool. The outcomes of this thesis are a reference architecture, a meta-model describing RESTful service consumption, and a code generation tool. The conducted research leads to the conclusion that consuming several RESTful API leads to complexity in the client and that this consumption can be modelled. Furthermore, evaluating the approach implies that this complexity can be reduced with the presented approach.
Model-Driven Software Engineering, Model Transformation, RESTful Web Services, RESTful APIs
Name | Type | Size | Last Modification | Last Editor |
---|---|---|---|---|
FinalPresentation_NiklasScholz.pdf | 3,51 MB | 09.10.2017 | ||
KickOff_NiklasScholz.pdf | 2,04 MB | 19.06.2017 | ||
NiklasScholz_Thesis.pdf | 2,07 MB | 11.10.2017 |