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中的效果
配置中存在ignore-prefix中的效果
备注
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.class, defaultValue = "这是默认值"),
@ApiImplicitParam(name = "计数", value = "这是技术的注释", required = false, paramType = "query", dataType = "Integer", dataTypeClass = Integer.class, defaultValue = "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<SwaggerEntity> swaggerTest(String name, Integer 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