(English) In the last two decades, the use of web Application Programming Interfaces (APIs) has grown exponentially, providing both consumers (software developers) and providers (companies and institutions that expose their organizational data or services) with numerous advantages and facilities. Web APIs allow developers to easily integrate existing services or data into their applications, reducing the time and cost required to build new software. At the same time, by making available their web APIs, providers can increase their customer reach or create a new revenue stream by monetizing the web API.
Even though consumers expect web APIs to be steady and well-established, web APIs are prone to continuous changes, evolving several times through their lifecycle. As the use of web APIs continues to grow, the need to evolve them to meet the changing needs of consumers becomes more challenging. However, consumers do not always welcome web API evolution, as the changes might be too frequent or not relevant from their point of view. This discontentment becomes even stronger for the fact that web APIs are exposed over the Internet, meaning that consumers may be forced to upgrade to new web API versions (if providers decide to discontinue the former ones). Knowing the impact changes have on consumers, providers have to strike a balance between not imposing unexpected, frequent changes and providing an up-to-date, maintainable, bug-free web API, that fulfills consumers’ needs.
The aim of this research work is to develop a semi-automatic method that enables web API providers to prescribe changes based on their consumers' behavior, as recorded in web API usage logs. We take the position that web API evolution should be mainly usage-based, i.e., the way consumers use web APIs should be one of the main drivers of web API changes. We start with the exploration of web API evolution, by seeing the process from the points of view of both providers and consumers. We identify and classify the changes that often happen to web APIs, and investigate how all these changes are reflected in various artifacts. Building on this classification, we examine different types of usage logs, namely development and production logs, to understand consumers' needs based on their behavior. We detect usage patterns that indicate the presence of usability issues or needs for improvement in the web API and suggest changes that should be implemented in future web API releases. Our approach enables providers to make informed decisions based on usage patterns. By adopting a usage-based approach, providers can ensure that their web APIs continue to meet the evolving needs of their consumers.
(Català) En les últimes dues dècades, l'ús d'Aplicacions de Programació d'Interfícies (APIs) web ha crescut exponencialment, oferint nombroses avantatges i facilitats tant als consumidors (desenvolupadors de programari) com als proveïdors (empreses i institucions que exposen les seves dades o serveis organitzatius). Les APIs web permeten als desenvolupadors integrar fàcilment serveis o dades existents en les seves aplicacions, reduint el temps i el cost necessaris per construir nous programaris. Al mateix temps, al posar a disposició la seva API web, els proveïdors poden augmentar el nombre de clients de la seva marca o crear una nova font de guanys monetitzant la seva API web.
Tot i que els consumidors esperen que les APIs web siguin estables i ben establertes, les APIs web són propenses a canvis contínues, evolucionant diverses vegades al llarg del seu cicle de vida. A mesura que l'ús de les APIs web continua creixent, la necessitat de fer-les evolucionar per satisfer les necessitats canviant dels consumidors esdevé més desafiadora. No obstant això, els consumidors no sempre acullen amb satisfacció l'evolució de les APIs web, ja que els canvis poden ser massa freqüents o no rellevants des del seu punt de vista. Aquesta descontentament esdevé encara més fort pel fet que les APIs web estan exposades a través d'Internet, el que significa que els consumidors poden ser obligats a actualitzar-se a noves versions de la API web (si els proveïdors decideixen discontinuar les antigues). Coneixent l'impacte que els canvis tenen en els consumidors, els proveïdors han de trobar un equilibri entre no imposar canvis inesperats i freqüents i proporcionar una API web actualitzada, mantenible i sense errors, que satisfaci les necessitats dels consumidors.
L'objectiu d'aquest treball de recerca és desenvolupar un mètode semi-automàtic que permeti als proveïdors de web API prescriure canvis basats en el comportament dels seus consumidors, tal com es registra en els logs d'ús de la web API. Considerem que l'evolució de la web API ha de ser principalment basada en l'ús, és a dir, la manera com els consumidors utilitzen les web APIs ha de ser un dels principals impulsors dels canvis en la web API. Comencem amb l'exploració de l'evolució de la web API, veient el procés des dels punts de vista tant dels proveïdors com dels consumidors de la API. Identifiquem i classifiquem els canvis que sovint es produeixen en les web APIs, i investiguem com aquests canvis es reflecteixen en diversos artefactes. Analitzem diferents tipus de logs d'ús, concretament els logs de desenvolupament i producció, per entendre les necessitats dels consumidors basades en el seu comportament. Identificant les necessitats dels consumidors, podem prescriure canvis que s'haurien d'implementar en futures versions de la web API. El nostre enfocament permet als proveïdors prendre decisions informades basades en els patrons d'ús. Adoptant un enfocament basat en l'ús, els proveïdors poden garantir que les seves web APIs continuïn satisfent les necessitats en evolució dels seus consumidors.