swagger简单使用学习

注意

一下基于spring-boot 3.0.2版本,该版本不支持springfox-swagger2 2.9.2会报错,无法访问swagger

安装

pomx文件中添加对应的依赖

 <!-- swagger -->
 <dependency>
     <groupId>org.springdoc</groupId>
     <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
     <version>2.1.0</version> <!-- 确保使用与 Spring Boot 兼容的最新版本 -->
 </dependency>

新版本不需要配置类,安装好依赖后,启动项目,可以直接访问http://localhost:8080/swagger-ui/index.html

效果图:
在这里插入图片描述

常用语法

修改文档信息

如果需要修改文档信息,则需要使用配置类

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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class OpenApiConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("API 文档标题") // 设置 API 文档标题
                        .description("这是 API 文档的描述") // 设置 API 文档描述
                        .version("1.0.0") // API 文档版本
                        .contact(new Contact()
                                .name("开发者姓名")
                                .email("开发者邮箱")
                                .url("开发者个人网站或公司网站"))
                        .license(new License()
                                .name("Apache 2.0")
                                .url("https://springdoc.org"))); // 设置开源协议信息
    }
}

目录结构
在这里插入图片描述
效果
在这里插入图片描述

controller信息配置

controller添加描述信息

修改前
在这里插入图片描述
修改后

@Controller
@RequestMapping("/user")
@Tag(name="用户控制器",description = "处理用户相关操作")
public class UserController {

    @Autowired
    private UserService userService;
    
    
    // 根据用户id查询用户信息
    @Operation(summary = "根据id获取用户",description = "返回用户信息")
    @GetMapping("/findById")
    @ResponseBody
    public Result findById(Integer id) {
        User user = userService.findById(id);
        return new Result(0, "查询成功", user);
    }
}
  • @Tag:用于为整个控制器添加描述信息,可以指定控制器的名称 (name) 和描述 (description)。
  • @Operation:用于为具体的 API 操作(方法)添加摘要 (summary) 和详细描述 (description)。
    在这里插入图片描述

入参描述

简单参数

 @Operation(summary = "根据id获取用户",description = "返回用户信息")
  @GetMapping("/findById")
  @ResponseBody
  public Result findById(@Parameter(description = "用户id") Integer id) {
      User user = userService.findById(id);
      return new Result(0, "查询成功", user);
  }

在这里插入图片描述

复杂对象入参

需要在参数实体类中添加

class UserParam {
    @Schema(description = "用户的唯一标识符,list集合", example = "[12345]")
    private List<Integer> idList;
}

在这里插入图片描述

返回值描述

在返回值的实体类中使用@Schema注解

public class Result<T> {
    @Schema(description = "业务状态码  0-成功  1-失败")
    private Integer code;//业务状态码  0-成功  1-失败
    @Schema(description = "提示信息")
    private String message;//提示信息
    
    ...
}

在这里插入图片描述
需要注意的是controller接口的返回值要指定具体的实体类,否则swagger里无法显示

正确

 @Operation(summary = "根据id获取用户", description = "返回用户信息")
 @GetMapping("/findById")
 @ResponseBody
 public Result<User> findById(@Parameter(description = "用户id") Integer id) {
     User user = userService.findById(id);
     return Result.success(user);
 }

错误(不影响代码运行,但是没有具体的返回值)

 @Operation(summary = "根据id获取用户", description = "返回用户信息")
 @GetMapping("/findById")
 @ResponseBody
 public Result findById(@Parameter(description = "用户id") Integer id) {
     User user = userService.findById(id);
     return Result.success(user);
 }

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Swagger是一个用于设计、构建和文档化RESTful Web服务的开源工具集。下面是一个简单Swagger使用教程: 1. 安装Swagger:可以通过npm、pip等包管理工具安装Swagger相关的库和工具。例如,对于Node.js项目,可以使用以下命令安装swagger-jsdoc和swagger-ui-express: ```bash npm install swagger-jsdoc swagger-ui-express ``` 2. 编写Swagger注解:在你的API代码中,使用Swagger注解来描述API的信息、请求和响应参数等。以下是一个示例: ```javascript /** * @swagger * /api/users: * get: * summary: 获取所有用户 * description: 获取所有用户列表 * responses: * 200: * description: 成功获取用户列表 * schema: * type: array * items: * $ref: '#/definitions/User' */ ``` 在这个示例中,我们使用Swagger注解来描述一个GET请求,它可以获取所有用户的列表。 3. 生成Swagger文档:使用Swagger注解编写完API代码后,可以使用相应的工具将这些注解转换为Swagger文档。例如,对于Node.js项目,我们可以使用swagger-jsdoc库生成Swagger文档。在项目的入口文件中添加以下代码: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); const options = { definition: { openapi: '3.0.0', info: { title: 'API文档', version: '1.0.0', }, }, apis: ['./path/to/api/controllers/*.js'], // API代码文件的路径 }; const swaggerSpec = swaggerJSDoc(options); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); ``` 这段代码将会在`/api-docs`路径下提供Swagger文档。 4. 查看Swagger文档:运行项目并访问`/api-docs`路径,你将会看到生成的Swagger文档。Swagger提供了一个交互式的UI界面,可以方便地查看API的信息、请求和响应参数等。 这只是一个简单Swagger使用教程,你可以根据自己的项目需求进一步深入学习使用Swagger
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值