A Comparison of Migration Paths from REST-based APIs to GraphQL

REST-based APIs have become a prevalent way of accessing and manipulating data through Web services. The resource-oriented nature of the endpoints, however, often leads to many consecutive HTTP calls from clients in order to collect and show the necessary information of an overview page. Recently, new approaches for client-server interactions have emerged that target different aspects like latency or structure of calls.

In this bachelor thesis, the student should first review various data exchange formats and protocols currently being proposed by research and industry, including but not limited to GraphQL, Falcor and gRPC. Then, possible migration paths to GraphQL should be elaborated for the REST-based API of Requirements Bazaar. In particular, we are interested in comparing OpenAPI-based wrappers like OASGraph [Wittern et al. 2018] and swagger2openapi (https://github.com/Mermade/swagger2openapi) with approaches that generate GraphQL schemas based on UML [Rodriguez-Echeverria et al 2017] and database schemas (https://github.com/rexxars/sql-to-graphql). Finally, an assessment should evaluate their applicability, e.g. by analyzing the generated GraphQL schemas for their idiomaticness ("natural" feel). Another point of interest is a comparison of the current flow of requests on requirements-bazaar.org with an optimized client leveraging GraphQL queries.

The API under consideration is Requirements Bazaar, an open source platform for continuous innovation by involving end users, designers, researchers and developers into the requirements collection, negotiation and prioritization processes. The website is running on https://requirements-bazaar.org and is currently used by the members of various software development communities around the world. The frontend of Requirements Bazaar is implemented using state-of-the-art HTML5 Web Components, while the backend runs on top of our solid las2peer framework for peer-to-peer based services.