ICSA 2024
Tue 4 - Sat 8 June 2024 Hyderabad, Telangana, India

Deprecation is a way to inform clients using an API that its usage is discouraged. While tool support and research for deprecation in static APIs is well established, web APIs are widely used nowadays, e.g., using the REST style. However, the techniques to detect and handle the usage of deprecated static APIs cannot be directly applied to web APIs. Previous approaches to the deprecation of web APIs focus on static analysis of client code to detect calls to remote APIs and, subsequently, an investigation of associated OpenAPI specifications. These approaches currently have two general limitations: (1) The target of an API call can often not be determined statically. (2) Deprecation in OpenAPI specifications is not the only way to signal deprecation for web APIs.

We introduce a dynamic approach using tracing to detect calls to web APIs. Subsequently, we check the called APIs for deprecation using an OpenAPI specification, an HTTP header field, or a knowledge base. This approach addresses both limitations of the detection with static analysis. We implement the approach and evaluate it on client-server calls as well as a microservice benchmark system.