从 Java 源代码生成准确的 OpenAPI 描述
软件工程
2024-11-01 v1
摘要
开发人员需要准确的表示性状态转移 (REST) Application Programming Interface (API) 描述,以确保 Web 服务之间的成功交互。OpenAPI Specification (OAS) 已成为 documenting REST APIs 的事实标准。手动创建 OpenAPI 描述耗时且容易出错,因此提出了几种从字节码或运行时信息自动生成的方法。本文首先研究了三种最新方法:Respector、Prophet 和 springdoc-openapi,并提出并讨论了其不足之处。随后,我们介绍了 AutoOAS——解决这些不足问题的我们的方法,用于生成准确的 OpenAPI 描述。它直接从 Java 源代码检测公开的 REST 端点路径、对应的 HTTP 方法、HTTP 响应代码以及请求参数和响应的数据模型。我们在七个真实的 Spring Boot 项目上对 AutoOAS 进行了评估,并将其性能与三种最新方法进行了比较。基于手动创建的 ground truth,AutoOAS 在识别 REST 端点路径、HTTP 方法、参数和响应方面实现了最高的精确率和召回率。相较于第二名的方法 Respector,识别参数时精确率提高了 39%,召回率提高了 35%;识别响应时精确率提高了 29%,召回率提高了 11%。此外,AutoOAS 是唯一能够处理配置概览的文件方法,并且提供了 REST APIs 中使用的各种数据模型最准确和最详细的描述。
引用
@article{arxiv.2410.23873,
title = {Generating Accurate OpenAPI Descriptions from Java Source Code},
author = {Alexander Lercher and Christian Macho and Clemens Bauer and Martin Pinzger},
journal= {arXiv preprint arXiv:2410.23873},
year = {2024}
}