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

SpringBoot2 如何集成OpenAPI

在Spring Boot 2中集成OpenAPI(以前称为Swagger)以生成和维护RESTful API文档,最简单且推荐的方法是使用 springdoc-openapi 库。以下是详细的步骤:

步骤 1:添加依赖

对于Maven项目,在pom.xml文件中添加以下依赖:

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

步骤 2:配置应用属性(可选)

application.propertiesapplication.yml文件中设置一些属性来自定义OpenAPI的行为。例如:

# application.yml
springdoc:
  api-docs:
    path: /v3/api-docs
  swagger-ui:
    path: /swagger-ui.html

步骤 3:启动应用并访问

启动Spring Boot应用程序后,可以通过以下URL访问生成的API文档:

  • OpenAPI JSON/YAML: http://localhost:8080/v3/api-docs
  • Swagger UI: http://localhost:8080/swagger-ui.html

步骤 4:定制API文档(可选)

可以通过注解来描述API,比如使用@Operation, @ApiResponse, @Parameter等来自定义API文档中的信息。例如:

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;

@RestController
@RequestMapping("/api")
@Tag(name = "My Custom API", description = "Operations for my custom API")
public class MyController {

    @GetMapping("/example")
    @Operation(summary = "Get an example resource", description = "Returns a simple example object.")
    @ApiResponse(responseCode = "200", description = "Successful operation")
    public ResponseEntity<MyExampleDTO> getExample() {
        // Implementation here...
        return new ResponseEntity<>(new MyExampleDTO(), HttpStatus.OK);
    }
}

提示

  • 如果使用了Spring Security,请确保配置适当的权限,以便能够访问Swagger UI和OpenAPI端点。
  • 可以通过设置springdoc.packagesToScan属性来限制扫描哪些包下的API接口。
  • 可以使用springdoc.group-configs来分组API。

http://www.kler.cn/a/470640.html

相关文章:

  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之24 重审 前端实现:主页页面
  • Sam Altman发布博客,回顾OpenAI九年历程,直言目标已瞄准ASI超级人工智能
  • 历代iPhone运行内存大小和电池容量信息
  • Harmony开发【笔记1】报错解决(字段名写错了。。)
  • 周记-Repeater中的children和item区别
  • Java实现下载excel模板,并实现自定义下拉框
  • 麒麟操作系统服务架构保姆级教程(八)数据库拆分静态业务拆分和负载均衡
  • dockerignore文件怎么写
  • iOS - AutoreleasePoolPage 节点为空时的处理逻辑
  • 使用Node编写服务器接口
  • 新型大数据架构之湖仓一体(Lakehouse)架构特性说明——Lakehouse 架构(一)
  • uniapp使用canvas生成订单小票图片
  • 【STM32】点击下载按钮时,提示No ST-LINK detected
  • 创建型模式4.原型模式
  • node.js版本管理之---npm 和 package.json
  • 图像识别-全连接层-卷积层-卷积层的计算-多输入通道场景-多输出通道场景-感受野-填充-VALID 与 SAME-stride-池化-CNN架构
  • 【C语言程序设计——选择结构程序设计】按从小到大排序三个数(头歌实践教学平台习题)【合集】
  • Backend - ADO.NET(C# 操作Oracle、PostgreSQL DB)
  • HCIA-Access V2.5_8_1_EPON原理_PON基本概念
  • 在Linux中,SElinux的作用是什么?如何临时和永久的更改SElinux上下文?
  • Linux buildroot和ubuntu的异同点
  • 支付宝手机网站支付
  • 两万字梳理 | 四足机器人的结构、控制及运动控制
  • VTK 鼠标+键盘重构
  • vulnhub potato靶机
  • HackMyVM-Again靶机的测试报告