Swagger的使用

我们日常都是基于接口开发项目,一般先试用postman或者其他接口管理工具和前端对好接口。然后双方按照接口开发内容再进行调试。

但是有时候,需要后端自己生成接口文档,那么我们就可以采用Swagger技术,在代码中植入依赖和注解。然后一键生成接口文档,同时可以用于调试和保存。

Swagger对于RestfulAPI风格的接口可以很好的适用。

那么下面我就介绍一下如何在项目中使用Swagger(以SpringBoot项目为例):

一、引入依赖

    <dependencies>
        <!-- RestfulWeb的依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Lombok的依赖 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- Swagger的依赖 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
            <version>4.1.0</version>
        </dependency>
    </dependencies>

二、配置文件

在 [application.yml] 中进行配置

server:
  port: 8080

knife4j:
  enable: true # 开启
  openapi:
    title: 用户管理接口文档
    description: "用户管理接口文档"
    email: 2451203736@qq.com
    concat: 陶其
    url: https://www.tqazy.com
    version: v1.0.0
    group:
      default:
        group-name: default
        api-rule: package
        api-rule-resources:
          - com.tqazy.test_swagger.controller # 扫描Controller所在包地址

三、示例代码

UserController.java

import com.tqazy.test_swagger.domain.dto.UserFormDTO;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;

@Api("用户管理接口")
@RestController
@RequestMapping("/users")
public class UserController {

    @ApiOperation(value = "新增用户接口", notes = "该方法用于在系统中新增一个用户的信息")
    @PostMapping("/addUser")
    @ApiResponses({
            @ApiResponse(code = 200, message = "新增用户成功"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
    public String addUser(@ApiParam("用户表单模型信息") @RequestBody UserFormDTO userDTO) {
        return "演示代码,新增用户成功!";
    }
}

UserFormDTO.java

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value = "用户表单模型", description = "该模型用于新增/修改用户时填写的用户表单信息")
public class UserFormDTO {

    @ApiModelProperty(value = "用户名", example = "蛮吉", required = true)
    private String username;

    @ApiModelProperty(value = "8")
    private String age;

    @ApiModelProperty(value = "用户地址", example = "神圣兽国游尾郡窝窝乡")
    private String address;
}

四、运行测试

启动SpringBoot项目,浏览器访问localhost:8080/doc.html

五、注解使用解析

5.1 控制器类注解

5.1.1 @Api

  • 用法: 用于对控制器类进行说明,描述该类的主要功能。
  • 参数: value 表示控制器的唯一标识;tags 表示该控制器的标签,用于分组展示。
  • 示例:
    @Api("用户管理接口")
  • 效果:

5.2 控制器方法注解

5.2.1 @ApiOperation

  • 用法: 用于对控制器中的方法进行说明,描述该方法的功能。
  • 参数: value 表示方法的简短描述;notes 表示方法的详细描述。
  • 示例代码:
    @ApiOperation(value = "新增用户接口", notes = "该方法用于在系统中新增一个用户的信息")
  • 效果:

5.2.2 @ApiResponses@ApiResponse

  • 用法: @ApiResponses 用于批量定义方法的响应信息,@ApiResponse 用于定义单个响应信息,描述方法可能返回的状态码及对应的含义。
  • 参数: code 表示状态码;message 表示状态码对应的描述信息。
  • 示例代码:
    @ApiResponses({
            @ApiResponse(code = 200, message = "新增用户成功"),
            @ApiResponse(code = 500, message = "服务器内部错误")
    })
  • 效果:

5.3 方法参数注解

5.3.1 @ApiParam

  • 用法: 用于对方法的参数进行说明,描述参数的含义、是否必传等信息。
  • 参数: value 表示参数的简短描述;required 表示该参数是否必传;example 表示参数的示例值。
  • 示例代码:
    @ApiParam("用户表单模型信息")

    效果:

5.4 模型类注解

5.4.1 @ApiModel

  • 用法: 用于对模型类进行说明,描述该类的主要用途。
  • 参数: value 表示模型类的唯一标识;description 表示模型类的详细描述。
  • 示例代码:
    @ApiModel(value = "用户表单模型", description = "该模型用于新增/修改用户时填写的用户表单信息")

    效果:

5.4.2 @ApiModelProperty

  • 用法: 用于对模型类的属性进行说明,描述属性的含义、示例值等信息。
  • 参数: value 表示属性的简短描述;example 表示属性的示例值;required = true 表示属性为必填,默认值:false
  • 示例代码:
    @ApiModelProperty(value = "用户名", example = "蛮吉", required = true)
    private String username;
  • 效果:

版权声明:本文《Swagger的使用》是由陶其原创撰写,首发于陶其的个人博客
转载声明:如需转载本文,请务必在转载处保留原文链接:https://www.tqazy.com/?p=1620,并明确注明文章来源。
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇