Reducing the Impact of Breaking Changes to Web Service Clients During Web API Evolution

MOBILESoft(2023)

Cited 0|Views2
No score
Abstract
Web services are self-contained distributed services enabled by web service application programming interfaces (APIs) using numerous protocol and middleware types. Web service API evolution encompasses changes to a web API made during the lifetime of a web service. Web clients, such as mobile applications, must continuously and manually adapt to breaking changes in the web API offered by web services. This paper presents an automated process for the adaptation based on web service API type-independent evolution patterns. These patterns enable the classification and resolution of web API changes in the context of continuously changing web API standards, protocols, and middleware types. Migration guides enable the generation of stable client libraries that replace the traditionally performed manual client-specific migrations. The process is instantiated using Apodini Migrators, generating Swift-based client libraries for web clients. We demonstrate how migration guides can be automatically generated using OpenAPI specifications or based on web services developed using the Apodini framework. We build two Migrators using a resource-based and a remote procedure call-based web API type. We validated the applicability of these Migrators to 13 web service version increments featuring a total of 3896 changes. The process correctly identified 86.1% of the changes, including 1132 breaking changes. The breaking changes included 424 unsolvable changes that required manual migration guide improvements by the web service developers at predefined extension points.
More
Translated text
Key words
Software evolution,web service API evolution,mobile applications,web services
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined