中文

初探 RESTful API 的弃用:一项实证研究

软件工程 2020-09-01 v1

摘要

表述性状态转移(REST)被视为构建 Web API 的一种标准软件体系结构风格,可通过互联网集成软件系统。然而,在连接系统的同时,当 RESTful API 引入破坏性变更(例如不再支持旧版本 API)时,也可能破坏依赖其服务的下游应用。为及时警示开发者并防止对下游应用造成严重影响,应遵循弃用-移除模型,并列出弃用相关信息(如替代方案)。尽管 API 弃用分析并非新课题,但现有工作大多聚焦于非 Web API,例如 Java 和 Android 提供的 API。为研究 RESTful API 弃用,我们提出了一个名为 RADA(RESTful API Deprecation Analyzer,RESTful API 弃用分析器)的框架。RADA 能够从 OpenAPI 规范(一种用于描述 RESTful Web 服务的机器可读配置文件)中自动识别已弃用的 API 元素并分析受影响的操作。我们将 RADA 应用于从 APIs.guru(最大的 OpenAPI 规范目录)收集的 1,368 个 RESTful API 的 2,224 份 OpenAPI 规范。基于 RADA 挖掘的数据,我们开展了一项实证研究,以考察 RESTful API 中弃用-移除协议的遵循情况,并刻画 RESTful API 弃用的实践特征。研究结果显示出现有 RESTful API 中存在若干严重的弃用相关问题。我们实现的 RADA 及详细的实证结果已公开,可供未来能够自动识别并迁移客户端代码中已弃用 RESTful API 操作使用的智能工具使用。

关键词

引用

@article{arxiv.2008.12808,
  title  = {A First Look at the Deprecation of RESTful APIs: An Empirical Study},
  author = {Jerin Yasmin and Yuan Tian and Jinqiu Yang},
  journal= {arXiv preprint arXiv:2008.12808},
  year   = {2020}
}