RESTful API Deprecation: An Empirical Study on Deprecation Practices and a Method for Detecting Deprecated API Usages in Client-side Web Applications

Loading...
Thumbnail Image

Authors

Yasmin, Jerin

Date

Type

thesis

Language

eng

Keyword

Web API Deprecation , RESTful API , OpenAPI Specification , Static Analysis

Research Projects

Organizational Units

Journal Issue

Alternative Title

Abstract

REpresentational State Transfer (REST) is considered as one standard software architectural style to build web APIs that can integrate software systems over the internet. However, while connecting systems, RESTful APIs might also break the dependent applications that rely on their services when they introduce breaking changes, e.g., an older version of the API is no longer supported. To warn developers promptly and thus prevent critical impact on downstream applications, a deprecated-removed model should be followed, and deprecation-related information such as alternative approaches should also be listed. While API deprecation analysis as a theme is not new, most existing work focuses on non-web APIs, such as the ones provided by Java and Android. Little is known about the deprecation practices of web APIs. Moreover, limited tools have been proposed to support API consumers in dealing with deprecated or removed web API requests. To investigate RESTful API deprecation, we propose a framework called RADA (RESTful API Deprecation Analyzer). RADA is capable of automatically identifying deprecated API elements and analyzing impacted operations from an OpenAPI specification, a machine-readable profile for describing RESTful web services. We apply RADA on 2,563 OpenAPI specifications of 1,586 RESTful APIs collected from APIs.guru, the largest directory of OpenAPI specifications. Based on the data mined by RADA, we perform an empirical study to investigate how the deprecated-removed protocol is followed in RESTful APIs and characterize the deprecation practices of RESTful APIs. The results of our study reveal several severe deprecation-related problems in existing RESTful APIs. Addressing the issue of lack of proactive ways for communication between API providers and consumers, we propose a static analysis-based approach that can automatically identify the usage of deprecation-related API operations in client-side JavaScript web applications. Our approach shows promising results with a precision of 100%.

Description

Citation

Publisher

License

Queen's University's Thesis/Dissertation Non-Exclusive License for Deposit to QSpace and Library and Archives Canada
ProQuest PhD and Master's Theses International Dissemination Agreement
Intellectual Property Guidelines at Queen's University
Copying and Preserving Your Thesis
This publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.

Journal

Volume

Issue

PubMed ID

External DOI

ISSN

EISSN