spring boot中封装了swagger文档,通过yml添加配置即可使用,更换了默认的swagger文档页面。

swagger2

依赖jar包

引入包 版本
jdk 1.8
spring boot 2.7.2
springfox-swagger2 3.0.0
swagger-annotations 1.5.24
swagger-models 1.5.24
knife4j-spring-ui 2.0.8
spring-boot-autoconfigure 2.7.2

使用

添加依赖

<dependency>
  <groupId>cn.allbs</groupId>
  <artifactId>allbs-swagger</artifactId>
  <version>1.1.7</version>
</dependency>

开启swagger功能

启动类添加@EnableAllbsSwagger2注解

过滤uri不映射出来

如果使用了通用包中的@AllbsResponseAdvice包装了返回结果则需要添加以下配置

ignore:
  urls:
    - /swagger-resources
    - /v2/api-docs

swagger2配置说明(根据自己实际情况配置)

swagger:
  # base-package 必须配置以扫描controller包
  base-package: cn.allbs.swagger.controller
  title: 标题dev
  description: 标题dev
  version: 1.0
  term-service-url: termUrl
  host: localhost
  contact:
    name: 这是name
    url: 这是url
    email: xx@xx.com
  # 权限头header中的配置,如果需要在header中添加token检验,则添加以下配置,auth的默认值为Authorization
  auth: token
  # 不添加权限头的接口prefix配置列表
  ignore-prefix:
    - /user

效果说明

没有配置在ignore-prefix中的效果

spring boot中封装了swagger文档,通过yml添加配置即可使用,更换了默认的swagger文档页面。
image-20220809101752370

配置中存在ignore-prefix中的效果

spring boot中封装了swagger文档,通过yml添加配置即可使用,更换了默认的swagger文档页面。
image-20220809101831673

备注

swagger配置设置为仅在profiles为dev以及test的配置中生效,其他一律不生效

访问地址

http://{ip}:{port}/doc.html

代码示例

@Data
@ApiModel(value = "swagger类")
public class SwaggerEntity {

    @ApiModelProperty(value = "时间")
    private LocalDateTime time;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "计数")
    private Integer count;
}
package cn.allbs.swagger.controller;

import cn.allbs.common.utils.R;
import cn.allbs.swagger.entity.SwaggerEntity;
import io.swagger.annotations.*;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.time.LocalDateTime;

/**
 * 类 TestNoAuthController
 * </p>
 *
 * @author ChenQi
 * @since 2022/8/9 9:49
 */

@Api(tags = "这是类的作用", value = "没啥用的")
@RestController
@RequestMapping("user")
@RequiredArgsConstructor
public class TestNoAuthController {

    @ApiOperation(value = "方法的用途", notes = "方法的备注说明")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "名称", value = "这是名称的注释", required = true, paramType = "query", dataType = "String", dataTypeClass = String.classdefaultValue "这是默认值"),
            @ApiImplicitParam(name = "计数", value = "这是技术的注释", required = false, paramType = "query", dataType = "Integer", dataTypeClass = Integer.classdefaultValue "22"),
    })
    @ApiResponses({
            @ApiResponse(code = 200, message = "名称", reference = "name", response = String.class),
            @ApiResponse(code 
200, message = "时间", reference = "time", response = LocalDateTime.class),
            @ApiResponse(code 
200, message = "计数", reference = "count", response = Integer.class)
    })
    @GetMapping("swaggerTest")
    public R<SwaggerEntityswaggerTest(String nameInteger count
{
        SwaggerEntity swaggerEntity = new SwaggerEntity();
        swaggerEntity.setName(name);
        swaggerEntity.setTime(LocalDateTime.now());
        swaggerEntity.setCount(count);
        return R.ok(swaggerEntity);
    }
}


原文始发于微信公众号(询于刍荛):spring boot中封装了swagger文档,通过yml添加配置即可使用,更换了默认的swagger文档页面。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/280771.html

(0)
Java朝阳的头像Java朝阳

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!