APICulture: Generación y alojamiento de servicios web dinámicos
APICulture: Generation and hosting of dynamic web service
Ver/ Abrir
Identificadores
URI: http://hdl.handle.net/10902/25840Registro completo
Mostrar el registro completo DCAutoría
Martínez Carcedo, BárbaraFecha
2022-07-06Derechos
© Bárbara Martínez Carcedo
Resumen/Abstract
Este trabajo de fin de grado consiste en la implementación de una aplicación web, tanto backend como frontend, que permita la creación dinámica de servicios web en base a unos datos determinados, unas operaciones que se deseen realizar sobre ellos, como por ejemplo las operaciones GET para leer o POST para añadir nuevos registros, y unas fuentes de datos y almacenaje. El nuevo servicio no se genera en código para su ejecución independiente, sino que, una vez almacenada su configuración, se interpreta de forma dinámica y se sirve a través de una ruta anidada del dominio principal.
Es el propio usuario el que configura a través de la interfaz qué datos quiere almacenar en su servicio, cómo quiere almacenarlos y qué operaciones se pueden realizar sobre ellos.
Para la implementación de este proyecto, se ha hecho uso del framework Angular junto con librerías como, Bootstrap y Angular Material para la parte del frontend. Para el backend se ha usado el framework NestJs y MongoDB como sistema de bases de datos no relacional, en donde se puedan almacenar datos dinámicos. Ambas partes de la aplicación, frontend y backend, han sido escritas en TypeScript ya que es el lenguaje que utilizan Angular y NestJS.
Cabe destacar que, gracias al uso de Angular y las librerías mencionadas anteriormente, toda la aplicación desarrollada es responsive. Esto significa que puede ser visualizada desde distintas pantallas, como una tablet o un monitor, ya que se ha implementado para que, los elementos gráficos se adapten de la manera más eficiente posible a la pantalla desde la que el usuario esté visualizando la aplicación.
This project involves creating a web application (both backend and frontend) that allows the dynamic creation of web services based on a specific data type, some operations to be done over them (in example: read = GET, create = POST, delete = DELETE) and some data sources and storage. This new service would not be generated as code for its independent execution but, once its configuration is stored, will be interpreted in a dynamic one and served as a nested route of the main domain.
The user would be able to configure through the web interface which kind of data they would like to be stored in their service, how they want to store them and what operations can be done over them.
As mentioned before, this project requires both frontend and backend implementations. To do so, I have used Angular´s framework along with toolkits like Bootstrap and Angular Material to implement the frontend. For the backend I have chosen NestJs framework for building my application, and MongoDB as my non-relational database, which allows me to store non-static data, therefore dynamic data. Both parts have been written in TypeScript as it is the language being used by Angular and NestJS.
I want to highlight that, thanks to using Angular and the toolkits mentioned, the whole application behaves “responsive”. What this means is that the user will be able to visualize the application from any device like a tablet or a monitor as it has been built so the graphic elements of the application will adapt the size of the screen in which it is being displayed.