An algorithm to normalize GraphQL queries

Garrido Ruiz, Juan (2020). An algorithm to normalize GraphQL queries. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: An algorithm to normalize GraphQL queries
Author/s:
  • Garrido Ruiz, Juan
Contributor/s:
  • Nieto Rodríguez, Manuel María
Item Type: Final Project
Degree: Grado en Ingeniería Informática
Date: January 2020
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Arquitectura y Tecnología de Sistemas Informáticos
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 (385kB) | Preview

Abstract

En 2012, Facebok estaba desarrollando su aplicación para móviles. A medida que la aplicación iba adquiriendo un mayor grado de complejidad, esta empezaba cada vez más a sufrir errores y su comportamiento dejaba bastante que desear. Después de evaluar diferentes opciones para su API, decidieron crear lo que conocemos actualmente como GraphQL. Tras tres años de uso interno, Facebook, decidió publicar la especificación. A medida que fue pasando el tiempo, GraphQL se hizo cada vez más popular llegando hasta el punto de que grandes empresas como Netflix, Twitter, Airbnb, Amazon o Github la incluyeron rápidamente en sus proyectos. Debido al gran crecimiento de GraphQL, esta tecnología aún tiene algunos problemas que tienen que estudiarse para proceder a su posterior corrección. Uno de estos problemas es que no existe un estándar de creación de queries. Como una petición puede ser creada de muchas formas distintas esto conlleva a que los tiempos de ejecución sean siempre distintos y algunas queries contengan algunos campos repetidos o innecesarios. Este proyecto de fin de grado intenta solucionar este problema creando un algoritmo capaz de reescribir todas las queries a un estándar, produciendo la query más óptima que se pueda crear para esa petición. Estandarizando las queries solucionaremos este problema y aquello llamado "field collection" no será necesario de ejecutar.---ABSTRACT---In 2012, Facebook was rebuilding their Facebook’s native mobile applications. As Facebook’s mobile apps became more complex, their mobile app suffered poor performance and it frequently crashed. After evaluating different options to implement an API data (incluiding RESTful server resources) they decided to create what we know nowadays as GraphQL. After three years of internal usage, in 2016, Facebook released the specification of this framework. This framework has become popular to the point that big companies as Netlfix, Twitter, Airbnb, Amazon or Github quickly included this framework in their projects. In spite of all the advances that this technology has brought, it has some problems derived from the lack of a formal form to create the queries. As one query can be written in so many different forms, responses times are affected producing different times even though the queries are asking for the same. This thesis attempts to solve this problem by creating an algorithm capable to rewritte the queries in order to normalize them. Normalizing the queries we will solve this problem and what is called "field collection" will not be needed.

More information

Item ID: 58137
DC Identifier: http://oa.upm.es/58137/
OAI Identifier: oai:oa.upm.es:58137
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 19 Feb 2020 11:30
Last Modified: 19 Feb 2020 11:30
  • 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