前言
逆水行舟,不进则退!!!
Springfox 目前最新的还是3.0的版本, 只支持SpringBoot 2.X的版本,
SpringDoc 目前最新的版本支持 SpringBoot3.X + JDK17
pom依赖
最简单的使用方式就是引入依赖, 然后在控制器上加上对应的注解, 就可以了
-
-
org.springdoc -
springdoc-openapi-starter-webmvc-ui -
2.1.0 -
-
-
-
org.springdoc -
springdoc-openapi-starter-webmvc-api -
2.1.0 -
控制器上的注解
-
- @RestController
- @Tag(name = "hello")
- @RequestMapping("/test")
- public class TestController {
-
- @PostMapping("/helloByName")
- @Operation(summary = "概要", description = "通过name来获取信息")
- public String helloByName(String name) {
- return "hello : " + name;
- }
检验测试
http://127.0.0.1:port/swagger-ui/index.html#/控制器路径
Springfox 到 Springdoc注解的迁移
- @Api ---> @Tag,用于标记一组相关的操作。
-
- @ApiIgnore ---> @Parameter(hidden = true)、@Operation(hidden = true) 或 @Hidden 替代
-
- @ApiImplicitParam ---> @Parameter,用于描述方法的输入参数。
-
- @ApiImplicitParams ---> @Parameters,用于将多个参数组合在一起。
-
- @ApiModel ---> @Schema,用于描述模型类。
-
- @ApiModelProperty(hidden = true) ---> @Schema(accessMode = READ_ONLY),用于标记模型属性为只读。
-
- @ApiModelProperty ---> @Schema,用于描述模型属性。
-
- @ApiOperation(value = "foo", notes = "bar") ---> @Operation(summary = "foo", description = "bar"),用于描述 API 操作。
-
- @ApiParam ---> @Parameter,用于描述方法的参数。
-
- @ApiResponse(code = 404, message = "foo") ---> @ApiResponse(responseCode = "404",
- description = "foo"),用于描述 API 响应。
更细化的配置
在配置层 添加配置类 OpenApiConfig
- package com.yu.forum.config;
-
- import io.swagger.v3.oas.models.Components;
- import io.swagger.v3.oas.models.ExternalDocumentation;
- import io.swagger.v3.oas.models.OpenAPI;
- import io.swagger.v3.oas.models.info.Contact;
- import io.swagger.v3.oas.models.info.Info;
- import io.swagger.v3.oas.models.info.License;
- import io.swagger.v3.oas.models.media.StringSchema;
- import io.swagger.v3.oas.models.parameters.Parameter;
- import io.swagger.v3.oas.models.security.SecurityRequirement;
- import io.swagger.v3.oas.models.security.SecurityScheme;
- import org.springdoc.core.configuration.SpringDocConfiguration;
- import org.springdoc.core.models.GroupedOpenApi;
- import org.springframework.boot.autoconfigure.AutoConfigureBefore;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import java.util.Collections;
-
- @Configuration
- public class OpenApiConfig {
-
- @Bean
- public OpenAPI openApi() {
- return new OpenAPI()
- .info(new Info()
- .title("文档标题")
- .description("文档描述")
- .contact(new Contact().name("作者").email("邮箱").url("可以写你的博客地址或不填"))
- .version("v2.0"));
- }
-
- }
-
配置yml文件
- springdoc:
- api-docs:
- # 是否开启接口文档
- enabled: true
- swagger-ui:
- # 持久化认证数据,如果设置为 true,它会保留授权数据并且不会在浏览器关闭/刷新时丢失
- persistAuthorization: true
未完待更新
小标题
小标题
我是专注学习的章鱼哥~