引入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

页面效果:

springboot 封装三方业务接口_数据类型

一下资料来之
原文链接:

常用注解:

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);
}