Example-driven web API specification discovery

REpresentational State Transfer (REST) has become the dominant approach to design Web APIs nowadays, resulting in thousands of public REST Web APIs offering access to a variety of data sources (e.g., open-data initiatives) or advanced functionalities (e.g., geolocation services). Unfortunately, most...

Descripción completa

Detalles Bibliográficos
Autores: Ed-douibi, Hamza, Canovas Izquierdo, Javier Luis, Cabot, Jordi
Tipo de recurso: artículo
Estado:Versión enviada para evaluación y publicación
Fecha de publicación:2017
País:España
Institución:Universitat Oberta de Catalunya (UOC)
Repositorio:O2, repositorio institucional de la UOC
OAI Identifier:oai:openaccess.uoc.edu:10609/78206
Acceso en línea:https://hdl.handle.net/10609/78206
Access Level:acceso abierto
Palabra clave:REST web APIs
discovery process
OpenAPI
repository
procés de detecció
repositori
proceso de detección
repositorio
Application program interfaces (Computer software)
Interfícies de programació d'aplicacions (Programari)
Interfaces de programación de aplicaciones (Software)
Descripción
Sumario:REpresentational State Transfer (REST) has become the dominant approach to design Web APIs nowadays, resulting in thousands of public REST Web APIs offering access to a variety of data sources (e.g., open-data initiatives) or advanced functionalities (e.g., geolocation services). Unfortunately, most of these APIs do not come with any specification that developers (and machines) can rely on to automatically understand and integrate them. Instead, most of the time we have to rely on reading its ad-hoc documentation web pages, despite the existence of languages like Swagger or, more recently, OpenAPI that developers could use to formally describe their APIs. In this paper we present an example-driven discovery process that generates model-based OpenAPI specifications for REST Web APIs by using API call examples. A tool implementing our approach and a community-driven repository for the discovered APIs are also presented.