引入Maven地址:
<!--swagger-->
<dependency>
<groupId>com.spring4all</groupId>
<artifactId>swagger-spring-boot-starter</artifactId>
<version>1.9.0.RELEASE</version>
</dependency>
在网关中加入接口文档服务来源:
@Component
@Primary
public class DocumentationConfig implements SwaggerResourcesProvider {
@Override
public List<SwaggerResource> get() {
List resources=new ArrayList<>();
resources.add(swaggerResource("会员服务接口","/login/v2/api-doces","2.0"));
return resources;
}
private SwaggerResource swaggerResource(String name, String location, String version) {
SwaggerResource swaggerResource = new SwaggerResource();
swaggerResource.setName(name);
swaggerResource.setLocation(location);
swaggerResource.setSwaggerVersion(version);
return swaggerResource;
}
}
启动类中加入swagger文档生成注解
@EnableSwagger2Doc
在服务接口中引入
@EnableSwagger2Doc :启动类上添加改注解,生成接口文档
实现类中:
@Api(“会员服务接口”) :类上加入接口说明
方法上
@ApiOperation(“获取用户信息”)
@ApiImplicitParam(name = “id”,value = “用户参数”,required = true,dataType = “Long”)
标注该方法的作用及方法信息
配置文件:
#swagger扫包
swagger:
base-package: com.hm.api.service.impl
页面效果:
一下资料来之
原文链接:
常用注解:
swagger的常用注解有 @Api @ApiOperation @ApiImplicitParams @ApiImplicitParam @ApiResponses @ApiResponse @ApiModel
一、 @Api注解只能使用于类上,用于将接口分组默认使用类名
参数 作用
tags 用于分组
value url的路径值
produces 返回的数据类型
consumes 需要的数据类型
prorocols 使用的协议如:https,http,ws,wss
authorizations 高级特性认证时配置
hidden 是否隐藏该分组接口 boolean 值默认false
position 组与组之间排序顺序
basepath 基本路径可以不配置
description 描述该组接口的作用
@Api(tags =“test”,value="测试使用接口组")
@RestController
public class TGeneratorContoller {
}
二、@ApiOperation 用在方法上,说明方法的用途和作用
参数 作用
value url的路径值
notes 对api的资源说明
position 显示的顺序 int类型
produces 返回的数据类型
consumes 需要的数据类型
prorocols 使用的协议如:https,http,ws,wss
authorizations 高级特性认证时配置
hidden 是否隐藏该分组接口 boolean 值默认false
response 返回的对象
responseContainer 这些对象是有效的 List, Set ,Map其他无效
httpMethod 请求的类型 GET, HEAD, POST, PUT, DELETE, OPTIONS ,PATCH
code http的状态码 默认 200
extensions 扩展属性
@ApiOperation(value = "根据传入的页码和也大小分页获取信息",notes = "测试数据")
@GetMapping("/generator/{pageNum}/{pageSize}")
public PageInfo<TGenerator> findPage(@RequestParam(name = "pageNum",required = true,defaultValue = "1") int pageNum, @RequestParam(name = "pageSize",required = true,defaultValue = "10") int pageSize){
return t_generatorServer.findPage(pageNum,pageSize);
}
三、@ApiImplicitParams:用在请求的方法上,包含一组参数说明@ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的配置信息
参数 作用
name 参数名
value 参数的汉字说明、解释
required 参数是否必须传
paramType 参数放在哪个地方 header --> 请求参数的获取:@RequestHeader query --> 请求参数的获取:@RequestParam path(用于restful接口)–> 请求参数的获取:@PathVariable body(不常用) form(不常用)
dataType 参数类型,默认String,其它值dataType=“Integer”
defaultValue 参数的默认值
@ApiImplicitParams({@ApiImplicitParam(name="pageNum",defaultValue = "1",required = true,dataType = "int",paramType = "path")
,@ApiImplicitParam(name="pageSize",defaultValue = "10",required = true,dataType = "int",paramType = "path")})
@GetMapping("/generator/{pageNum}/{pageSize}")
public PageInfo<TGenerator> findPage(@RequestParam(name = "pageNum",required = true,defaultValue = "1") int pageNum, @RequestParam(name = "pageSize",required = true,defaultValue = "10") int pageSize){
return t_generatorServer.findPage(pageNum,pageSize);
}
四、@ApiResponses:用于请求的方法上,表示一组响应@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
参数 作用
code 数字,例如400
message 信息,例如"请求参数没填好"
response 抛出异常的类
reference 参考ApiOperation中配置
responseHeaders 参考 ResponseHeader 属性配置说明
responseContainer 参考ApiOperation中配置
\
@ApiResponses({
@ApiResponse(code=400,message="请求参数没填好"),
@ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")
})
@GetMapping("/generator/{pageNum}/{pageSize}")
public PageInfo<TGenerator> findPage(@RequestParam(name = "pageNum",required = true,defaultValue = "1") int pageNum, @RequestParam(name = "pageSize",required = true,defaultValue = "10") int pageSize){
return t_generatorServer.findPage(pageNum,pageSize);
}
五、@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
参数 作用
@ApiModelProperty 用在属性上,描述响应类的属性
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@ApiModel(description= “返回响应数据”)
public class RestMessage implements Serializable{
@ApiModelProperty(value = "是否成功")
private boolean success=true;
@ApiModelProperty(value = "返回对象")
private Object data;
@ApiModelProperty(value = "错误编号")
private Integer errCode;
@ApiModelProperty(value = "错误信息")
private String message;
}
六、 @ApiIgnore用于类,方法,属性上,忽略某个Api。
七、@ApiParam用于方法,参数,属性上
参数 作用
name 属性名称
value 属性值
defaultValue 默认属性值
allowableValues 可以不配置
required 是否属性必填
access
allowMultiple 默认为false
hidden 隐藏该属性
example 示例
@GetMapping("/generator/{pageNum}/{pageSize}")
public PageInfo<TGenerator> findPage(@RequestParam(name = "pageNum",required = true,defaultValue = "1") @ApiParam(value="页码",required=true) int pageNum, @RequestParam(name = "pageSize",required = true,defaultValue = "10") int pageSize){
return t_generatorServer.findPage(pageNum,pageSize);
}
八、@ResponseHeader 用于方法上,响应头设置
参数 作用
name 响应头名称
description 头描述
response 默认响应类 Void
responseContainer 参考ApiOperation中配置
@ResponseHeader(name="响应头的名称参数",description="响应头的描述")
@GetMapping("/generator/{pageNum}/{pageSize}")
public PageInfo<TGenerator> findPage(@RequestParam(name = "pageNum",required = true,defaultValue = "1") int pageNum, @RequestParam(name = "pageSize",required = true,defaultValue = "10") int pageSize){
return t_generatorServer.findPage(pageNum,pageSize);
}