Rediana Koçi PhD thesis

Rediana Koçi gets her PhD with the thesis entitled "A data-driven approach to prescribe web API evolution" done with the supervision of Xavier Franch and Petar Jovanovic

Advisors: Xavier Franch and Petar Jovanovic

Panel composed by: Antonio Ruiz Cortés, Cesare Pautasso, Silverio Martínez-Fernández

Abstract of the thesis

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.