中文

RESTRuler:自动识别 Web API 中 RESTful 设计规则违规

软件工程 2024-09-12 v1

摘要

基于 HTTP 的 RESTful API 是使数据和功能可用于应用程序和软件服务的最重要方式之一。然而,API 设计的质量严重影响 API 的可理解性和可用性,已制定了许多规则。尽管我们对许多设计规则的有效性有所证据,但对程序员而言,识别设计中的规则违规仍然困难。因此,我们提出了 RESTRuler,一个基于 Java 的开源工具,使用静态分析来检测 OpenAPI 描述中的设计规则违规。当前原型支持超过 14 项规则,这些规则超越了简单的语法检查,部分依赖于自然语言处理。模块化的架构也使得实现新规则容易。为评估 RESTRuler,我们进行了包含超过 2300 个公开 OpenAPI 描述的基准测试,并请 7 位 API 专家构建了 111 项复杂的规则违规。就鲁棒性而言,RESTRuler 成功分析了 99% 的实际 OpenAPI 定义,其中一些因文件过大而失败。就性能效率而言,该工具为大多数文件表现良好,可在低 CPU 和内存使用下在 23 秒以内分析 84% 的文件。最后,就有效性而言,RESTRuler 实现了 91% 的精确率(各规则精确率从 60% 到 100%)和 68% 的召回率(各规则召回率从 46% 到 100%)。基于这些规则实现之间的差异,我们确定了若干改进机会。尽管 RESTRuler 仍是一个研究原型,但评估表明该工具对错误具有较强鲁棒性,大多数 API 的资源效率良好,显示出良好的精确率和相当可靠的召回率。实践者可以利用它来提高其 API 设计的质量。

关键词

引用

@article{arxiv.2402.13710,
  title  = {RESTRuler: Towards Automatically Identifying Violations of RESTful Design Rules in Web APIs},
  author = {Justus Bogner and Sebastian Kotstein and Daniel Abajirov and Timothy Ernst and Manuel Merkel},
  journal= {arXiv preprint arXiv:2402.13710},
  year   = {2024}
}

备注

Accepted for publication at the 21st IEEE International Conference on Software Architecture (ICSA 2024)