Generación automática de APIs GraphQL a partir de mappings RML con MongoDB

Moreno Fernández, David (2019). Generación automática de APIs GraphQL a partir de mappings RML con MongoDB. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Generación automática de APIs GraphQL a partir de mappings RML con MongoDB
Author/s:
  • Moreno Fernández, David
Contributor/s:
  • Corcho García, Óscar
Item Type: Final Project
Degree: Grado en Ingeniería Informática
Date: March 2019
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview

Abstract

Hoy en día casi todas las cosas que se realizan en el ámbito de la informática, y más en concreto las aplicaciones, en algún momento de su ciclo de vida hacen llamadas a alguna API, y no es ningún secreto que las más populares son las RESTful APIs. Sin embargo, la necesidad creciente de avanzar más rápido en productos y sistemas cada vez más complejos, más allá del simple modelo CRUD que ofrece REST, modelo que se ha desmotrado poco flexible y con limitaciones, ha empujado un cambio en la forma en la que interactuamos con las APIs. Es por ello que han empezado a surgir alternativas a REST, como GraphQL. Es importante recalcar que REST, en su concepción inicial, no tiene nada de malo y que GraphQL surge como una alternativa, y no como un sustituto. Para que una API GraphQL funcione necesita de unos resolvers y schemas. Desarrollar estos últimos es una tarea tediosa, repetitiva y poco trivial. Es aquí donde entra mi trabajo. Mi trabajo consistirá en la creación de una herramienta desarrollada en Javascript que, a partir de un fichero JSON representando una base de datos MongoDB y un fichero de mapeo en el estándar RML (un lenguaje declarativo bastante intuitivo para expresar bases de datos), generará automáticamente los resolvers y los schemas para que cualquier individuo, tenga o no conocimientos en programación, pueda tener lista una API GraphQL, pudiendo hacer consultas y mutaciones a esta.---ABSTRACT---Nowadays almost all things that are done in the field of computing at some point in their life cycle make calls to some API, and it is no secret that the most popular are the RESTful APIs. However, the growing need to move faster in increasingly complex products and systems, beyond the simple CRUD model offered by REST, a model with little flexibility and limitations, has pushed a change in the way we interact with APIs. That is why alternatives to REST, such as GraphQL, have begun to emerge. It is important to emphasize that REST, in its initial conception, has nothing wrong and that GraphQL emerges as an alternative, and not as a substitute. For a GraphQL API to work, it needs some resolvers and schemas. To develop these last ones is a tedious, repetitive and non trivial task. This is where my work comes in. My work will consist in the creation of a tool developed in Javascript which from a JSON file representing a MongoDB database and a mapping file in the RML standard (a fairly intuitive declarative language to express databases) will automatically generate resolvers and schemas so that any individual, whether or not they have programming knowledge, can have a GraphQL API ready to work, and can make queries and mutations to it.

More information

Item ID: 55701
DC Identifier: http://oa.upm.es/55701/
OAI Identifier: oai:oa.upm.es:55701
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 06 Jul 2019 08:18
Last Modified: 06 Jul 2019 08:18
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM