Swagger技术分享

问题:手写API文档的几个痛点?

1.  文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时

2.  接口返回结果不明确

3. 不能直接在线测试接口,通常需要使用工具,比如postman。

4. 接口文档太多,不好管理

Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强。

一、Swagger简介

1.1、Swagger概述

Swagger 是一个规范和完整的框架,用于生成描述调用可视化RESTful 风格的 Web 服务。Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过Swagger进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。

1.2、Swagger作用

1.2.1、接口文档的在线生成。

1.2.2、功能测试。

1.3、Swagger工具

1.3.1、Swagger Editor

可让使用者在浏览器里以YAML格式编辑Swagger API规范并实时预览文档。可以生成有效的Swagger

JSON描述,并用于所有Swagger工具(代码生成、文档等等)中。


1.3.2、Swagger UI

一个无依赖的HTML、JS和CSS集合,用于解析遵守Swagger spec的JSON或YAML文件,并且生成API文档的UI导航

1.3.3、Swagger Codegen

可为不同的平台生成客户端 SDK(比如 Java、JavaScript、Python等)

1.4、Swagger示例


二、Swagger集成

2.1、引入springfox依赖


2.2、创建Swagger配置类


2.3、引入swagger UI


2.4、controller注解


常用注解说明:

@ApiModel用于类,描述一个model的信息

@ApiModelProperty用于方法,字段,表示对model属性的说明

@Api用于类,表示标识这个类是swagger的资源,并说明该类的作用

@ApiOperation用于方法,给API增加方法说明,说明方法的具体作用

@ApiParam用在请求方法的参数上,表示对参数的说明

@ApiImplicitParam: 用在方法上表示单独的请求参数

@ApiResponses:用在请求的方法上,表示一组响用

2.5、结果展示

输入参数,点击“Try it out”


注意:

1.springfox的注解配置含@EnableSwagger2 和 @EnableSwagger。

@EnableSwagger2: 指的是采用Swagger API Spec 2.0,此时springfox获取json路径为http://IP:port/{context-path}/v2/api-docs。

@EnableSwagger: 指的是采用Swagger API Spec 1.0,此时springfox获取json路径为http://IP:port/{context-path}/api-docs。

2. springfox的入口是一个controller,需要用Spring MVC进行拦截。

三、Swagger与公司项目整合

3.1、引入依赖

开发好swagger微服务模块项目后,直接添加swagger项目依赖即可集成swagger项目到公司项目,本例集成到bee_admin。


3.2、结果展示

先后启动好注册中心,配置中心,admin三个微服务模块,输入URL

http://192.168.0.109:11082/swagger2-demo/swagger-ui.html#/


随机测试一个menucontroller.


3.3、响应页面具体说明


S

四、生成静态HTML5,PDF的API文档

在配置好插件后,只需点击并执行“asciidoctor”命令,便可生成对应的HTML5,PDF文档。


五、Swagger 总结

优点:

1.编写代码的过程中,可以实时的产出接口文档,对于文档的维护非常方便。

 2.文档结构清晰,界面美观,便于项目内部交流。

3.方便测试人员和前端开发人员了解API。

 4.支持通过API规范生成客户端和服务器代码骨架代码,加速开发。

缺点:

1.对代码的嵌入性比较强。

2.无法更换主题。

六、参考地址

swagger官网:http://swagger.io/

swagger规范:http://swagger.io/specification/

swagger editor在线编辑:http://editor.swagger.io/#/

swagger githubhttps://github.com/swagger-api

swagger 注解说明:

https://github.com/swagger-api/swagger-core/wiki/Annotations#apioperation

springfox githubhttps://github.com/springfox/springfox

swagger:Rest API的描述语言:https://zhuanlan.zhihu.com/p/21353795

springfox-swagger原理解析与使用过程中遇到的坑:

http://blog.csdn.net/w4hechuan2009/article/details/68892718

API文档工具-swagger的集成:http://www.jianshu.com/p/5cfbe62a1569

swaggerhttp://www.jianshu.com/p/4115f2b53983

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容