博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swagger使用
阅读量:5222 次
发布时间:2019-06-14

本文共 3769 字,大约阅读时间需要 12 分钟。

 

一 swagger简介

Swagger 是一个用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。可以跟据业务代码自动生成相关的api接口文档

具有以下好处

• 及时性 (接口变更后,能够及时准确地通知相关开发人员)
• 规范性 (能够规范表达接口的地址,请求方式,参数及响应格式和错误信息)
• 一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
• 可测性 (接口能够测试,以方便理解业务)

二 使用方法

1 引入相应jar包(信用分系统使用springboot 1.5.5.RELEAS版本与swagger2.6.1版本适合)

io.springfox
springfox-swagger2
2.6.1
io.springfox
springfox-swagger-ui
2.6.1

2创建 swagger 配置类(在 springboot 启动类 Application.java 同级创建 Swagger2 的配置类 Swagger2 )

@Configuration@EnableSwagger2public class Swagger2 {    @Value("${swagger.enable}")    private boolean enableSwagger;    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .enable(enableSwagger)                .select()                .apis(RequestHandlerSelectors.basePackage("com.xx.controller"))                .paths(PathSelectors.any())                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("信用分系统——api文档")                .description("让我们一起把信用分做好做强大")                .termsOfServiceUrl("http://wiki.lianjia.com/pages/viewpage.action?pageId=xxxx")                .version("1.0")                .build();    }}

3 在 controller 和 vo 上使用特定含义注解

@Api(description = "XX相关接口", tags = {"company"})@RestControllerpublic class XXController extends BaseController {    @Resource    private QueryCreditScoreCompService queryCreditScoreCompService;    @ApiOperation(value = "查询分公司列表", notes = "查询分公司列表")    @ApiImplicitParams({            @ApiImplicitParam(paramType = "query", name = "loginUserCode", dataType = "string", required = true, value = "登陆人系统号")    })    @ApiResponses({            @ApiResponse(code = 999, message = "后端代码异常"),            @ApiResponse(code = 404, message = "请求url路径错误,或者后端服务未部署启动"),            @ApiResponse(code = 0, message = "正常返回")    })    @RequestMapping(value = "/api/xx/query", method = RequestMethod.GET)    public JsonResult
> queryCreditScoreCompList(String loginUserCode) { return new JsonResult<>(); }}

vo模型上添加返回字段含义

@ApiModel("分公司信息")@Datapublic class CompDto {    @ApiModelProperty("城市编码")    private String cityCode;    @ApiModelProperty("城市名称")    private String compCode;    @ApiModelProperty("分公司编码")    private String cityName;    @ApiModelProperty("分公司名称")    private String compName;}

访问部署机器的ip+端口+swagger-ui.html,就能看到接口api页面

三 各个注解用法说明:

注解 描述 解释
@Api Marks a class as a Swagger resource. 用于类对象,只有在类对象上标注该注解后,相应的api信息才能展示出来.
@ApiOperation Describes an operation or typically a HTTP method against a specific path. 描述具体的方法
@ApiImplicitParam Represents a single parameter in an API Operation. 描述具体的请求参数,比如具体的响应方法的参数为 HttpServletRequest时,我会从该参数中取一些请求参数,则可以通过该方法单独定义参数.见下面的具体说明,该参数不能单独使用,必须和@ApiImplicitParams一起使用,可参考后面的例子
@ApiImplicitParams A wrapper to allow a list of multiple ApiImplicitParam objects. 组合一组@ApiImplicitParam
@ApiParam Adds additional meta-data for operation parameters. 定义具体的请求参数,类似@RequestParam 参数,直接在方法参数上使用.
@ApiResponse Describes a possible response of an operation. 返回值,该类主要有code值与message两个属性,code值必须是http 返回code值,默认会有200,404等,不能单独使用,必须和@ApiResponses一起使用
@ApiResponses A wrapper to allow a list of multiple ApiResponse objects. 组合@ApiResponse
@ApiModel Provides additional information about Swagger models. 提供对请求参数与返回结果中的model的定义

四 注意的点 / 不足之处:

•  注意使用版本 springboot1.5.5 对应swagger2.6.1
•  tags标题由中文bug,中文的时候不能展开接口列表,需要用英文
•  注意:线上环境建议关闭
•  代码侵入性
•  如果系统控制内网访问,无法提供接口文档给其他公司人看

转载于:https://www.cnblogs.com/wanghongsen/p/9376852.html

你可能感兴趣的文章
Lintcode: Partition Array
查看>>
分享适合个人站长的5类型网站
查看>>
类别的三个作用
查看>>
【SICP练习】85 练习2.57
查看>>
runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁
查看>>
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>
通过beego快速创建一个Restful风格API项目及API文档自动化(转)
查看>>
解决DataSnap支持的Tcp长连接数受限的两种方法
查看>>
Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
查看>>
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>
Hibernate中inverse="true"的理解
查看>>
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
BS调用本地应用程序的步骤
查看>>
常用到的多种锁(随时可能修改)
查看>>