swagger2 介绍+注解说明

简介:

       为什么要用swagger,我的理由是方便,作为后端开放人员,最烦的事就是自己写接口文档和前端交互是不是需要各种参数很繁琐,项目集成swagger后就能自动生成接口文档,做到前端、后端联调接口文档的及时性和便利性。

优势:

1.支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便。
2.提供 Web 页面在线测试 API:有文档还不够,Swagger 生成的文档还支持在线测试。参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口。

 提供pom.xml

        <!-- swagger2 -->       
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>        
        </dependency>


示例如图下:

50586476138c485ba3aed5cd2058757a.png

 d9d38f5d50d644f686231d06ffb1e209.png

swagger基本注解使用 

注解及其使用如下(对应注解):

注解作用使用位置
@Api表示对类的说明常用参数类上面
@ApiOperation说明方法的用途、作用方法上面
@ApiModel表示一个返回响应数据的信息响应类
@ApiModelProperty描述响应类的属性属性
@ApiIgnore忽略某个字段使之不显示在文档中属性

一、 @Api:用在请求的类上,表示对类的说明常用参数

参数描述
tags说明该类的作用,非空时将覆盖value的值
value描述类的作用
description对api资源的描述,在1.5版本后不再支持
basePath基本路径可以不配置,在1.5版本后不再支持
position如果配置多个Api 想改变显示的顺序位置,在1.5版本后不再支持
produces设置MIME类型列表(output),例:“application/json, application/xml”,默认为空
authorizations获取授权列表(安全声明),如果未设置,则返回一个空的授权值
hidden默认为false, 配置为true 将在文档中隐藏

示例:

@CrossOrigin
@RestController
@RequestMapping("/customer/information")
@Api(tags = "定制橱柜~客户信息")
public class CrmCustomersController{}

 接口文档示例:e55989b14cd9485a9148c292e1143b63.png

二、@ApiOperation:用在请求的方法上,说明方法的用途、作用 

参数描述
value说明方法的用途、作用
notes方法的备注说明
tags操作标签,非空时将覆盖value的值
response响应类型(即返回对象)
responseContainer声明包装的响应容器(返回对象类型)。有效值为 “List”, “Set” or “Map”。
responseReference指定对响应类型的引用。将覆盖任何指定的response()类
httpMethod指定HTTP方法,“GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
responseHeaders响应头列表
code响应的HTTP状态代码。默认 200
hidden默认为false, 配置为true 将在文档中隐藏

示例:

    @ApiOperation(value = "供应商~导购(状态流转)")
    @RequestMapping(value = "queryStateExchange", method = RequestMethod.POST)
    public PmpResult queryStateExchange () int pageNum,String state){}

接口文档示例:

三、@ApiModelProperty:用在属性上,描述响应类的属性

参数描述
value此属性的简要说明。
name允许覆盖属性名称
allowableValues限制参数的可接受值。1.以逗号分隔的列表 2、范围值 3、设置最小值/最大值
access允许从API文档中过滤属性。
notes目前尚未使用。
dataType参数的数据类型。可以是类名或者参数名,会覆盖类的属性名称。
required参数是否必传,默认为false
position允许在类中对属性进行排序。默认为0
hidden允许在Swagger模型定义中隐藏该属性。
example属性的示例。
readOnly将属性设置为只读
reference指定对相应类型定义的引用,覆盖指定的任何参数值

示例:

44a84af469624659a6d977bc6ffac6a3.png

 接口文档示例:

7e74ebda524a46db889393764f65e42b.png

四、 @ApiIgnore 忽略某个属性,使之不显示在swagger文档中显示

未加注解前示例:

10a149eaf15343f9b0938449735ab8f3.png

加注解后示例:

    @ApiOperation(value = "客户列表")
    @RequestMapping(value = "customerlist", method = RequestMethod.GET)
    public PmpResult  queryCustomerList (@ApiIgnore @RequestParam(value="pageNum",defaultValue="1") int pageNum, @RequestParam(value="pageSize",defaultValue="10") int pageSize, String customersno, String customersname, String daogouid){}

 加注解后接口文档示例:

4a5af60437ff42d9a728dd54e01072fa.png

五、@ApiImplicitParams 用法

 示例:

    @ApiImplicitParams({ @ApiImplicitParam(value="客户编号(精确命中)",name="customersno",dataType="Stirng",paramType = "query"),
                         @ApiImplicitParam(value="类型(04:门 05:口)",name="state",dataType="Stirng",paramType = "query"),
                         @ApiImplicitParam(value="订单主表Uid",name="parentId",dataType="Stirng",paramType = "query")})
    @RequestMapping(value = "queryByDoorOrderlist", method = RequestMethod.POST)
    @ApiOperation(value = "基础项目~订单~木门")
    public PmpResult queryByDoorOrderlist(String customersno, String state,String parentId){}

 接口文档示例:  显示描述信息

5879272d5fb7491ba11bd8906618d9cd.png

以上就是常用的注解示例,如需要其他注解可自行尝试。

  • 45
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你才是臭弟弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值