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

Paul Schmiedmayer, Andreas Bauer, B. Brügge
{"title":"Reducing the Impact of Breaking Changes to Web Service Clients During Web API Evolution","authors":"Paul Schmiedmayer, Andreas Bauer, B. Brügge","doi":"10.1109/MOBILSoft59058.2023.00008","DOIUrl":null,"url":null,"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.","PeriodicalId":311618,"journal":{"name":"2023 IEEE/ACM 10th International Conference on Mobile Software Engineering and Systems (MOBILESoft)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2023 IEEE/ACM 10th International Conference on Mobile Software Engineering and Systems (MOBILESoft)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MOBILSoft59058.2023.00008","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
减少在Web API演进过程中对Web服务客户端的破坏性更改的影响
Web服务是由使用多种协议和中间件类型的Web服务应用程序编程接口(api)支持的自包含分布式服务。Web服务API演进包括在Web服务的生命周期内对Web API所做的更改。Web客户机,比如移动应用程序,必须不断地、手动地适应Web服务提供的Web API中的突破性变化。本文提出了一种基于web服务API类型独立演化模式的自适应自动化过程。这些模式能够在不断变化的web API标准、协议和中间件类型的环境中对web API的变化进行分类和解析。迁移指南支持生成稳定的客户端库,以取代传统上执行的手动特定于客户端的迁移。该过程使用Apodini Migrators实例化,为web客户端生成基于swift的客户端库。我们将演示如何使用OpenAPI规范或基于使用Apodini框架开发的web服务自动生成迁移指南。我们使用一个基于资源的和一个基于远程过程调用的web API类型构建了两个migrator。我们验证了这些Migrators对13个web服务版本增量的适用性,总共有3896个更改。该过程正确识别了86.1%的更改,包括1132个破坏性更改。破坏性更改包括424个无法解决的更改,这些更改需要web服务开发人员在预定义的扩展点进行手动迁移指导改进。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Issue-Labeler: an ALBERT-based Jira Plugin for Issue Classification Native vs Web Apps: Comparing the Energy Consumption and Performance of Android Apps and their Web Counterparts Vulnerability Propagation in Package Managers Used in iOS Development Understanding the Impact of Fingerprinting in Android Hybrid Apps Reducing the Impact of Breaking Changes to Web Service Clients During Web API Evolution
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1