当前位置: 首页 > news >正文

Springdoc配置参数详解

文章目录

  • **1. 基础配置**
    • **API 文档路径-springdoc.api-docs.path**
    • **Swagger UI 路径-springdoc.swagger-ui.path**
    • **是否启用 API 文档-springdoc.api-docs.enabled**
    • **是否启用 Swagger UI-springdoc.swagger-ui.enabled**
  • **2. 全局元信息-info**
    • **应用标题-springdoc.info.title**
    • **应用描述-springdoc.info.description**
    • **版本号-pringdoc.info.version**
    • **联系人信息-springdoc.info.contact**
    • **许可信息-pringdoc.info.license**
  • **3. 分组与模块化**
    • **分组支持-springdoc.group-configs**
    • **扫描包范围-springdoc.packages-to-scan**
    • **排除特定路径-springdoc.paths-to-exclude**
  • **4. 安全配置**
    • **全局安全方案**
    • **全局安全要求**
  • **5. 自定义行为**
    • **缓存控制**
    • **排序规则**
    • **服务器地址-pringdoc.servers**
  • **6. 高级配置**
    • **自定义 OpenAPI 对象**
    • **自定义 Swagger UI**
  • **7. 总结**

系列文章:
springboot-swagger详解
springboot-优美的Knife4j文档-Swagger进化
Spring Cloud Gateway 网关整合 Knife4j
SpringBoot之如何集成SpringDoc最详细文档

1. 基础配置

API 文档路径-springdoc.api-docs.path

  • springdoc.api-docs.path
    • 作用:指定 OpenAPI JSON 文档的访问路径。
    • 默认值/v3/api-docs
    • 示例
      springdoc.api-docs.path=/openapi
      

Swagger UI 路径-springdoc.swagger-ui.path

  • springdoc.swagger-ui.path
    • 作用:指定 Swagger UI 的访问路径。
    • 默认值/swagger-ui.html
    • 示例
      springdoc.swagger-ui.path=/docs
      

是否启用 API 文档-springdoc.api-docs.enabled

  • springdoc.api-docs.enabled
    • 作用:启用或禁用 OpenAPI 文档生成功能。
    • 默认值true
    • 示例
      springdoc.api-docs.enabled=false
      

是否启用 Swagger UI-springdoc.swagger-ui.enabled

  • springdoc.swagger-ui.enabled
    • 作用:启用或禁用 Swagger UI。
    • 默认值true
    • 示例
      springdoc.swagger-ui.enabled=false
      

2. 全局元信息-info

应用标题-springdoc.info.title

  • springdoc.info.title
    • 作用:设置 API 文档的标题。
    • 默认值:空
    • 示例
      springdoc.info.title=用户管理系统
      

应用描述-springdoc.info.description

  • springdoc.info.description
    • 作用:设置 API 文档的描述信息。
    • 默认值:空
    • 示例
      springdoc.info.description=用户管理相关的 API 文档
      

版本号-pringdoc.info.version

  • springdoc.info.version
    • 作用:设置 API 文档的版本号。
    • 默认值:空
    • 示例
      springdoc.info.version=1.0.0
      

联系人信息-springdoc.info.contact

  • springdoc.info.contact.name
  • springdoc.info.contact.email
  • springdoc.info.contact.url
    • 作用:设置文档的联系人信息(姓名、邮箱、URL)。
    • 默认值:空
    • 示例
      springdoc.info.contact.name=John Doe
      springdoc.info.contact.email=john.doe@example.com
      springdoc.info.contact.url=http://example.com
      

许可信息-pringdoc.info.license

  • springdoc.info.license.name
  • springdoc.info.license.url
    • 作用:设置文档的许可证信息(名称、URL)。
    • 默认值:空
    • 示例
      springdoc.info.license.name=Apache 2.0
      springdoc.info.license.url=https://www.apache.org/licenses/LICENSE-2.0
      

3. 分组与模块化

分组支持-springdoc.group-configs

  • springdoc.group-configs
    • 作用:为不同的控制器或包生成独立的 API 文档分组。
    • 示例
      springdoc.group-configs[0].group=user-api
      springdoc.group-configs[0].packages-to-scan=com.example.user
      springdoc.group-configs[1].group=order-api
      springdoc.group-configs[1].packages-to-scan=com.example.order
      

扫描包范围-springdoc.packages-to-scan

  • springdoc.packages-to-scan
    • 作用:指定需要扫描的包范围,用于生成 API 文档。
    • 默认值:当前应用程序的所有包。
    • 示例
      springdoc.packages-to-scan=com.example.api
      

排除特定路径-springdoc.paths-to-exclude

  • springdoc.paths-to-exclude
    • 作用:排除某些路径,不将其包含在生成的 API 文档中。
    • 默认值:无
    • 示例
      springdoc.paths-to-exclude=/admin/**
      

4. 安全配置

全局安全方案

  • springdoc.api-docs.security-schemes
    • 作用:定义全局的安全方案(如 OAuth2、API Key 等)。
    • 示例
      springdoc.api-docs.security-schemes[0].name=ApiKeyAuth
      springdoc.api-docs.security-schemes[0].type=apiKey
      springdoc.api-docs.security-schemes[0].in=header
      

全局安全要求

  • springdoc.api-docs.security-requirements
    • 作用:定义全局的安全要求。
    • 示例
      springdoc.api-docs.security-requirements[0]=ApiKeyAuth
      

5. 自定义行为

缓存控制

  • springdoc.cache.disabled
    • 作用:禁用 API 文档的缓存。
    • 默认值false
    • 示例
      springdoc.cache.disabled=true
      

排序规则

  • springdoc.default-flat-param-object
    • 作用:是否将参数对象展平为单个参数。
    • 默认值false
    • 示例
      springdoc.default-flat-param-object=true
      

服务器地址-pringdoc.servers

  • springdoc.servers
    • 作用:定义 API 的服务器地址列表。
    • 示例
      springdoc.servers[0].url=http://localhost:8080
      springdoc.servers[0].description=本地开发环境
      springdoc.servers[1].url=https://api.example.com
      springdoc.servers[1].description=生产环境
      

6. 高级配置

自定义 OpenAPI 对象

  • 作用:通过 Java 配置类自定义 OpenAPI 对象。
  • 示例
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
            .info(new Info()
                .title("用户管理系统")
                .version("1.0")
                .description("用户管理相关的 API 文档"))
            .addServersItem(new Server().url("http://localhost:8080").description("本地开发环境"));
    }
    

自定义 Swagger UI

  • 作用:通过 Java 配置类自定义 Swagger UI 行为。
  • 示例
    @Bean
    public SwaggerUiConfigProperties swaggerUiConfig() {
        SwaggerUiConfigProperties config = new SwaggerUiConfigProperties();
        config.setPath("/custom-docs");
        return config;
    }
    

7. 总结

以下是 springdoc 配置参数的分类总结:

类别参数作用
基础配置springdoc.api-docs.path, springdoc.swagger-ui.path, springdoc.api-docs.enabled配置 API 文档路径、Swagger UI 路径及启用状态。
全局元信息springdoc.info.title, springdoc.info.description, springdoc.info.version设置 API 文档的标题、描述、版本等基本信息。
分组与模块化springdoc.group-configs, springdoc.packages-to-scan, springdoc.paths-to-exclude支持分组、限制扫描范围、排除特定路径。
安全配置springdoc.api-docs.security-schemes, springdoc.api-docs.security-requirements定义全局安全方案和要求。
自定义行为springdoc.cache.disabled, springdoc.default-flat-param-object, springdoc.servers控制缓存、参数对象展平、服务器地址等高级功能。
高级配置自定义 OpenAPI 对象、Swagger UI 配置通过代码方式实现更灵活的定制。

相关文章:

  • WPS表格导入CSV文件(适合处理数据库导出数据)
  • html5表格实战-跨行跨列
  • 【分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取
  • 系统分析师论文《论业务流程分析方法及其应用》
  • Linux的Shell编程
  • 【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现生物识别(指纹识别)应用
  • Vala编程语言教程-语法和注释
  • Channel-wise Knowledge Distillation for Dense Prediction论文阅读和
  • 【css酷炫效果】纯CSS实现粒子旋转动画
  • NFC 碰一碰发视频源码搭建,支持OEM
  • JavaScript基础-DOM 简介
  • Java爬虫如何处理动态加载的内容?
  • springBoot中不添加依赖 , 手动生成一个token ,并校验token,在统一拦截器中进行校验 (使用简单 , 但是安全性会低一点)
  • Gemini分析屏幕截图时,如何处理图像模态(如界面元素、文字内容)与文本模态(用户指令)的语义对齐?
  • 五、面向对象
  • hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常
  • XEasyWork:面向AI应用的可视化工作流开发平台
  • Billu_b0x靶场:一场关于网络安全的技术冒险
  • 如何在WordPress中添加下载链接?
  • 通过 TTL 识别操作系统的原理详解
  • 华泰柏瑞基金总经理韩勇因工作调整卸任,董事长贾波代为履职
  • 央行:货币与物价的关系受多重因素影响,提振物价的关键在于扩大有效需求
  • 七方面118项任务,2025年知识产权强国建设推进计划印发
  • 美联储主席:关税“远超预期”,美联储实现目标的进程或被推迟至明年
  • 公募基金改革八大要点:建立浮动管理费收取机制、降低规模排名考核权重
  • A股三大股指集体高开大涨超1%,券商、房地产涨幅居前