Swagger的简单使用

Swagger的简单使用

		<!-- swagger2 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>
访问地址
http://127.0.0.1:8082/swagger-ui.html   或者
http://127.0.0.1:8082/xxx/swagger-ui.html
常用注解
类
@Api(tags = "xxx模块")

方法
@ApiOperation(value = "xx方法", notes = "作用")
  @ApiImplicitParams({
      @ApiImplicitParam(name = "xx", value = "xxx", dataType = "String"),
      @ApiImplicitParam(name = "xx", value = "xx(必填)", required = true, dataType = "String"),
  })
  
禁用:可对类,方法,单个参数  
@ApiIgnore 
演示案例一: 2021年1月5日10:08:10
引用:https://www.jianshu.com/p/349e130e40d5

#####Controller代码
@Override
@ApiOperation(value = "post请求调用示例", notes = "invokePost说明", httpMethod = "POST")
public FFResponseModel<DemoOutputDto> invokePost(@ApiParam(name="传入对象",value="传入json格式",required=true) @RequestBody @Valid DemoDto input) {
    log.info("/testPost is called. input=" + input.toString());
    return new FFResponseModel(Errcode.SUCCESS_CODE, Errcode.SUCCESS_MSG);
}


#####接口请求入参对象   
@Data
@ApiModel(value="演示类",description="请求参数类" )
public class DemoDto implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotNull
    @ApiModelProperty(value = "defaultStr",example="mockStrValue")
    private String strDemo;

    @NotNull
    @ApiModelProperty(example="1234343523",required = true)
    private Long longNum;

    @NotNull
    @ApiModelProperty(example="111111.111")
    private Double doubleNum;

    @NotNull
    @ApiModelProperty(example="2018-12-04T13:46:56.711Z")
    private Date date;
    
}

#####接口请求出参公共类
@ApiModel(value="基础返回类",description="基础返回类")
public class FFResponseModel<T> implements Serializable {

    private static final long serialVersionUID = -2215304260629038881L;
    // 状态码
    @ApiModelProperty(example="成功")
    private String code;
    // 业务提示语
    @ApiModelProperty(example="000000")
    private String msg;
    // 数据对象
    private T data;

...
}

#####接口请求出参实际数据对象
@Data
public class DemoOutputDto {

    private String res;

    @NotNull
    @ApiModelProperty(value = "defaultOutputStr",example="mockOutputStrValue")
    private String outputStrDemo;

    @NotNull
    @ApiModelProperty(example="6666666",required = true)
    private Long outputLongNum;

    @NotNull
    @ApiModelProperty(example="88888.888")
    private Double outputDoubleNum;

    @NotNull
    @ApiModelProperty(example="2018-12-12T11:11:11.111Z")
    private Date outputDate;
    
}
案列二 2021年1月5日10:12:31

原文链接:https://blog.csdn.net/xiaojin21cen/article/details/78654652

文章目录
1、swagger2 注解整体说明
2、@Api:请求类的说明
3、@ApiOperation:方法的说明
  3.1、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明
4、@ApiResponses、@ApiResponse:方法返回值的说明
5、@ApiModel:用于JavaBean上面,表示一个JavaBean(如:响应数据)的信息
  5.1、@ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义

1、swagger2 注解整体说明
用于controller类上:

注解	说明
@Api	对请求类的说明
用于方法上面(说明参数的含义):

注解	说明
@ApiOperation	方法的说明
@ApiImplicitParams、@ApiImplicitParam	方法的参数的说明;@ApiImplicitParams 用于指定单个参数的说明
用于方法上面(返回参数或对象的说明):

注解	说明
@ApiResponses、@ApiResponse	方法返回值的说明 ;@ApiResponses 用于指定单个参数的说明
对象类:

注解	说明
@ApiModel	用在JavaBean类上,说明JavaBean的 用途
@ApiModelProperty	用在JavaBean类的属性上面,说明此属性的的含议
2、@Api:请求类的说明
@Api:放在 请求的类上,与 @Controller 并列,说明类的作用,如用户模块,订单类等。
    tags="说明该类的作用"
    value="该参数没什么意义,所以不需要配置"
示例:

@Api(tags="订单模块")
@Controller
public class OrderController {

}
@Api 其它属性配置:

属性名称	备注
value	url的路径值
tags	如果设置这个值、value的值会被覆盖
description	对api资源的描述
basePath       	基本路径
position            	如果配置多个Api 想改变显示的顺序位置
produces	如, “application/json, application/xml”
consumes 	如, “application/json, application/xml”
protocols	协议类型,如: http, https, ws, wss.
authorizations	高级特性认证时配置
hidden	配置为true ,将在文档中隐藏
3、@ApiOperation:方法的说明
@ApiOperation:"用在请求的方法上,说明方法的作用"
    value="说明方法的作用"
    notes="方法的备注说明"
3.1、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明
@ApiImplicitParams:用在请求的方法上,包含一组参数说明
    @ApiImplicitParam:对单个参数的说明        
        name:参数名
        value:参数的汉字说明、解释
        required:参数是否必须传
        paramType:参数放在哪个地方
            · header --> 请求参数的获取:@RequestHeader
            · query --> 请求参数的获取:@RequestParam
            · path(用于restful接口)--> 请求参数的获取:@PathVariable
            · body(请求体)-->  @RequestBody User user
            · form(普通表单提交)       
        dataType:参数类型,默认String,其它值dataType="Integer"       
        defaultValue:参数的默认值
示列:

@Api(tags="用户模块")
@Controller
public class UserController {

    @ApiOperation(value="用户登录",notes="随边说点啥")
    @ApiImplicitParams({
        @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
        @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
        @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
    })
    @PostMapping("/login")
    public JsonResult login(@RequestParam String mobile, @RequestParam String password,
    @RequestParam Integer age){
        //...
        return JsonResult.ok(map);
    }
}
4、@ApiResponses、@ApiResponse:方法返回值的说明
@ApiResponses:方法返回对象的说明
    @ApiResponse:每个参数的说明
        code:数字,例如400
        message:信息,例如"请求参数没填好"
        response:抛出异常的类
示例:

@Api(tags="用户模块")
@Controller
public class UserController {

    @ApiOperation("获取用户信息")
    @ApiImplicitParams({
        @ApiImplicitParam(paramType="query", name="userId", dataType="String", required=true, value="用户Id")
    }) 
    @ApiResponses({
        @ApiResponse(code = 400, message = "请求参数没填好"),
        @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")
    }) 
    @ResponseBody
    @RequestMapping("/list")
    public JsonResult list(@RequestParam String userId) {
        ...
        return JsonResult.ok().put("page", pageUtil);
    }
}
5、@ApiModel:用于JavaBean上面,表示一个JavaBean(如:响应数据)的信息
@ApiModel:用于JavaBean的类上面,表示此 JavaBean 整体的信息
            (这种一般用在post创建的时候,使用 @RequestBody 这样的场景,
            请求参数无法使用 @ApiImplicitParam 注解进行描述的时候 )
5.1、@ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义
示例:

@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;
        
    /* getter/setter 略*/
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值