后端编写Swagger接口管理文档

后端编写Swagger接口管理文档

在后端开发当中,编写好多个接口后需要通过注解编写相应的接口文档提供给前端调用接口实现前后端分离。

Swagger接口管理文档

访问接口文档的网页:http://localhost:8080/swagger-ui/index.html

导入依赖


    io.springfox
    springfox-boot-starter
    3.0.0

编写yaml

SpringBoot 2.6以上版本修改了路径匹配规则,但是Swagger3还不支持,这里换回之前的,不然启动直接报错

spring:
    mvc:
        pathmatch:
      matching-strategy: ant_path_matcher

创建配置类配置swagger信息

这个是配置swagger网页的大文字

@Configuration
public class SwaggerConfiguration {
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfoMyself())
                .select()   //开启选择扫描接口功能
                .apis(RequestHandlerSelectors.basePackage("com.example.controller"))    //设置swagger只扫描该包下的接口(还可以设置只扫描每个类,某个方法)
                .build();
    }

    private ApiInfo apiInfoMyself(){
        return new ApiInfoBuilder()
                .contact(new Contact("你的名字", "https://www.bilibili.com", "javastudy111*@163.com"))
                .title("图书馆里系统——在线api接口文档")
                .description("欢迎各位前端大佬前来访问接口")
                .version("1.1") //自己随便定义这个接口第几版的
                .build();
    }
}

添加具体描述

//为xxxcontroller这个类加注解
@Api(tags = "账户验证接口", description = "包括用户登录、注册、验证码请求等操作。")
@RestController
@RequestMapping("/api/auth")
public class AuthApiController {

//为某个接口添加注解
@ApiResponses({
        @ApiResponse(code = 200, message = "邮件发送成功"),
        @ApiResponse(code = 500, message = "邮件发送失败")   //不同返回状态码描述
})
@ApiOperation("请求邮件验证码")   //接口描述
@GetMapping("/verify-code")
public RestBean verifyCode(@ApiParam("邮箱地址") @RequestParam("email") String email,//请求参数的描述
                                @ApiParam("邮箱地址") @RequestParam("email") String email){

//让swagger忽略每个接口
@ApiIgnore     //忽略此请求映射
@PostMapping("/login-success")
public RestBean loginSuccess(){
    return new RestBean<>(200, "登陆成功");
}

//为实体类添加描述(因为有时候会返回一个实体类,所以需要告诉前端人员这个实体类描述的是啥)
@Data
@ApiModel(description = "响应实体封装类")
@AllArgsConstructor
public class RestBean {

    @ApiModelProperty("状态码")
    int code;
    @ApiModelProperty("状态码描述")
    String reason;
    @ApiModelProperty("数据实体")
    T data;

    public RestBean(int code, String reason) {
        this.code = code;
        this.reason = reason;
    }
}

如果有配置多环境,prod生产环境就没必要开启swagger了

springfox:
  documentation:
    enabled: false

本文来自博客园,作者:不吃紫菜,遵循CC 4.0 BY-SA版权协议,

转载请附上原文出处链接:https://www.cnblogs.com/buchizicai/p/16517395.html及本声明;

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Original: https://www.cnblogs.com/buchizicai/p/16517395.html
Author: 不吃紫菜
Title: 后端编写Swagger接口管理文档

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578698/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球