springdoc-openapi 的基本使用

文章介绍了如何利用springdoc-openapi为springboot项目快速创建规范的API文档,包括添加依赖、配置信息、注解方法以及查看生成的文档。相较于springfox,springdoc-openapi具有更好的Spring兼容性和活跃的社区支持,更符合OpenAPI3规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

使用 springdoc-openapi 可以快速为 springboot 项目生成规范的 API 文档,具体使用步骤如下:

依赖配置

在 pom.xml 加入内容,即可开始使用:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.6.9</version>
</dependency>

然后在 Config 中配置基本的描述信息,如下:

@Configuration
public class OpenApiConfig {

    @Bean
    public OpenAPI springOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("SpringDoc API Test")
                        .description("SpringDoc Simple Application Test")
                        .version("0.0.1"));
    }

}

接下来在 Controller 中使用注解标记文本,如下:

@RestController(value = "/clients")
@Tag(name = "/clients")
public class ClientsRestController {

    @Operation(summary = "This method is used to get the clients.")
    @GetMapping
    public List<String> getClients() {
        return Arrays.asList("First Client", "Second Client");
    }
}

最后 Application.java 启动应用后,输入默认地址:http://localhost:8081/swagger-ui/index.html 即可看到文档:

在地址 http://localhost:8081/v3/api-docs 目录中,openAPI 3.0.1 文件,格式如下:

总结

很多从 swagger 2 过来的用户可能会好奇,为什么不使用 springfox 库来生成 API,我在这里简单总结一下

推荐使用 springdoc-openapi 的理由如下:

  • springdoc-openapi 是 spring 官方出品,与 springboot 兼容更好(springfox 兼容有坑)
  • springdoc-openapi 社区更活跃,springfox 已经 2 年没更新了
  • springdoc-openapi 的注解更接近 OpenAPI 3 规范

综上所述,我个人还是更加推荐使用 springdoc-openapi 来自动化你项目的 API 文档

### 如何配置 `springdoc-openapi-ui` 实现接口文档导出功能 为了使应用程序支持通过 `springdoc-openapi-ui` 导出接口文档,主要依赖于正确配置 `springdoc` 和其扩展插件来提供此特性。具体来说: 在项目的 `pom.xml` 文件中引入必要的依赖项可以增强 `springdoc-openapi` 的功能集,从而允许用户下载 OpenAPI 描述文件[^1]。 ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>${springdoc.version}</version> </dependency> <!-- 添加用于导出Swagger JSON/YAML格式的支持 --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-data-rest</artifactId> <version>${springdoc.version}</version> </dependency> ``` 接着,在 `application.properties` 中指定一些基本参数以确保服务正常运行并启用特定路径下的资源访问权限[^4]: ```properties # 启用OpenAPI描述文件的JSON和YAML版本暴露给外部调用者 springdoc.api-docs.enabled=true # 设置API Docs的基础URL,默认为/v3/api-docs;可以根据需求调整 springdoc.api-docs.path=/v3/api-docs # Swagger UI页面的位置,默认为/swagger-ui.html springdoc.swagger-ui.path=/swagger-ui/ # 是否开启ReDoc界面展示选项,默认关闭(false),可根据个人喜好设定 springdoc.re-doc.enabled=false ``` 当上述配置完成后,开发者可以通过浏览器直接访问 `/v3/api-docs` 来获取当前应用编程接口(API)的结构化元数据表示形式——即所谓的 "OpenAPI Specification" 文档。该文档不仅限于在线浏览,还提供了多种方式供客户端程序解析利用,其中包括但不限于将其保存至本地磁盘作为静态文件[^2]。 对于更进一步的需求,比如定制化的报告生成功能,则可能涉及到额外的技术栈或是第三方工具的选择与集成工作。不过就单纯实现标准意义上的 API 文档导出而言,以上步骤已足以满足大多数场景的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值