SpringBoot3整合OpenAPI3(Swagger3)

swagger2更新到3后,再使用方法上发生了很大的变化,名称也变为OpenAPI3

官方文档

一、引入依赖

            <dependency>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
                <version>${springdoc-openapi.version}</version>
            </dependency>
server:
  servlet:
    context-path: /content
springdoc:
  api-docs:
    enabled: true
    path: /v3/api-docs
  swagger-ui:
    enabled: true
    path: /swagger-ui.html

openapi3使用十分方便,做到这里后,你可以直接通过以下网址访问swagger页面。

http://<ip>:<port>/content/swagger-ui/index.html

在这里插入图片描述

二、使用

1. @OpenAPIDefinition + @Info

用于定义整个 API 的信息,通常放在主应用类上。可以包括 API 的标题、描述、版本等信息。

@SpringBootApplication
@Slf4j
@OpenAPIDefinition(info = @Info(title = "内容管理系统", description = "对课程相关信息进行管理", version = "1.0.0"))
public class ContentApplication {
    public static void main(String[] args) {
        SpringApplication.run(ContentApplication.class, args);
    }
}

2. @Tag

用于对 API 进行分组。可以在控制器类或方法级别上使用。

@Tag(name = "课程信息编辑接口")
@RestController("content")
public class CourseBaseInfoController {
}

3. @Operation

描述单个 API 操作(即一个请求映射方法)。可以提供操作的摘要、描述、标签等。

    @Operation(summary = "课程查询接口")
    @PostMapping("/course/list")
    public PageResult<CourseBase> list(
            PageParams params,
            @RequestBody(required = false) QueryCourseParamsDto dto){

        CourseBase courseBase = new CourseBase();
        courseBase.setCreateDate(LocalDateTime.now());

        return new PageResult<CourseBase>(new ArrayList<CourseBase>(List.of(courseBase)),20, 2, 10);
    }

在这里插入图片描述

4. @Parameter

用于描述方法参数的额外信息,例如参数的描述、是否必需等。

    @Operation(summary = "课程查询接口")
    @PostMapping("/course/list")
    public PageResult<CourseBase> list(
            @Parameter(description = "分页参数") PageParams params,
            @Parameter(description = "请求具体内容") @RequestBody(required = false) QueryCourseParamsDto dto){

        CourseBase courseBase = new CourseBase();
        courseBase.setCreateDate(LocalDateTime.now());

        return new PageResult<CourseBase>(new ArrayList<CourseBase>(List.of(courseBase)),20, 2, 10);
    }

在这里插入图片描述

5. @Schema

描述模型的结构。可以用于类级别(标注在模型类上)或字段级别。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageParams {
    //当前页码
    @Schema(description = "页码")
    private Long pageNo = 1L;

    //每页记录数默认值
    @Schema(description = "每页条目数量")
    private Long pageSize =10L;
}

在这里插入图片描述

6. @ApiResponse

描述 API 响应的预期结果。可以指定状态码、描述以及返回类型。

@ApiResponse(responseCode = "200", description = "Successfully retrieved user")
public User getUserById(@PathVariable Long id) {
}

在这里插入图片描述

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot使用OpenAPI(也称为Swagger3)的步骤如下: 1. 首先,你需要导入Swagger3的依赖。在你的项目中的pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.5.12</version> </dependency> ``` 2. 如果你的Spring Boot版本高于2.4或2.5,你需要在application.yml配置文件中增加mvc配置,以启用Swagger的接口文档生成。例如: ``` springdoc: api-docs: enabled: true ``` 3. 定义一个Swagger的配置类,用于配置Swagger的各项参数,比如文档标题、版本等。你可以通过继承`org.springdoc.core.SpringDocConfigurat`类或者使用`@Configuration`注解创建一个配置类。在配置类中,你可以使用`@Bean`注解配置Swagger的各种参数,如下所示: ``` @Configuration public class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info().title("API Documentation").version("1.0.0")); } } ``` 4. 现在你可以开始使用OpenAPI了。在你的Controller类或者方法上使用Swagger的注解,比如`@Operation`、`@Api`等来描述接口信息。这些注解将会被Swagger自动解析生成接口文档。 在你的浏览器中访问启动的Spring Boot应用程序的Swagger UI页面,通常是`http://localhost:8080/swagger-ui.html`,你将看到自动生成的接口文档。 以上就是Spring Boot中使用OpenAPISwagger3)的基本步骤。通过配置Swagger的注解和参数,你可以更详细地定义和展示你的API接口信息。如果你需要进一步了解示例代码和其他配置说明,你可以参考提供的Spring Boot与SpringDoc OpenAPI3整合的Demo代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值