赞
踩
在SpringBoot低版本时一般使用Swagger扫描接口生成Json格式的在线文档,然后通过swagger-ui将Json格式的文档以页面形式展示文档。可惜遗憾的是swagger更新到3.0.0版本(springfox)后不更新了。
SpringBoot3.x以后需要的JDK版本最低为Java17,而Java17的包名在之前的版本中从javax更改为jakarta,导致swagger在SpringBoot3.x版本中完全无法使用,而SpringDoc不同于swagger,在SpringBoot出了3版本以后很快就兼容升级了,换句话说SpringDoc是SpringBoot全系列都支持的。
@NotNull
, @Min
, @Max
, and @Size
.<!-- 适用于webmvc的SpringDoc依赖 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.2.0</version>
</dependency>
该依赖包含swagger-ui和springdoc-openapi-starter-webmvc-api依赖,无需引入其它依赖即可生效。
package com.example.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 示例接口 * * @author vains */ @RestController @RequestMapping("/example") @Tag(name = "示例接口", description = "提供示例内容展示SpringDoc集成效果") public class ExampleController { @GetMapping("/test01") @Operation(summary = "无参查询接口", description = "hello") public String test01() { return "Hello Spring doc"; } @GetMapping("/test02") @Parameter(name = "test02", description = "url参数") @Operation(summary = "查询参数示例", description = "原样返回入参") public String test02(String test02) { return test02; } @GetMapping("/test03/{test03}") @Parameter(name = "test03", description = "url参数") @Operation(summary = "url参数示例", description = "原样返回入参") public String test03(@PathVariable String test03) { return test03; } }
http://127.0.0.1:8080/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") | 描述接口操作,包括标题和注释 |
@ApiParam | @Parameter | 描述接口方法参数 |
@ApiResponse(code = 404, message = "foo") | @ApiResponse(responseCode = "404", description = "foo") | 描述接口响应信息,包括状态码和消息 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。