Springfox-Swagger教程优化
一、前言
上一章节我们说的是swaggerfox-swagger也就是swagger2,因为章节太长我讲解的是原生态的,接下来我们说的是swagger2优化版
Swagger是当前最好用的Restful API文档生成的开源项目,随着swagger的越来越流行,原生的swagger2已经不能满足实际的需求了。所以为了适应项目的需要,可以对swagger2进行适当优化。
如果大家觉得不错,欢迎点赞,留言评论。
PS文章底部是我的代码下载链接,大家可以自行下载。
二、优化方式一(添加令牌)
为保证项目安全性和保密性通常我们的接口都是带有token身份认证的
但是token怎么办呢?必须要在每一个请求的header都加上token。
效果展示
通过输入http://localhost:8080/项目跟路径/直接可以访问自己的页面。我的是http://localhost:8080/springfox_springmvc/
因为页面是封装好的,所以后缀是不变的
代码展示
上一章节我们配置好原生的swagger2以后,只需要在config中修改如上代码就行了.
这样在调用接口的时候,每个接口都需要x-access-token验证,如果验证不通过则无法调用接口,这样就不用,每次接口传参的时候都得传x-access-token,当然验证得在接口里写,这个就不用我多说了吧,如果有不明白的,可以留言评论。
扩展
- 上面的方式适合接口通用的任何参数不仅仅是header里的,只需修改parameterType(。。。)里的类型即可。很好用的一个优化。
- 上述代码中有个.path(),这是同一个接口有多个项目,接口区分用的时候弄得,个人建议注释点,因为一般这种接口风格只对应一个项目
弊端
当然如果仅仅是token验证,博主其实不建议用这个优化,因为这个每次都得调用接口输入token太麻烦,其实token输入一次就行了。
三、优化方式二(token一次验证)
其实token一般情况下只需要进行一次验证,同一个项目token应该是一样的,上一个方式其实不适合token验证,因为每次调用接口都需要输入token,所以就有了下面的优化方式二。
效果展示
通过输入http://localhost:8080/项目跟路径/直接可以访问自己的页面。我的是http://localhost:8080/springfox_springmvc/
因为页面是封装好的,所以后缀是不变的
代码展示
上一章节我们配置好原生的swagger2以后,只需要在config中修改如上代码就行了.
- 通过Swagger2的securitySchemes配置全局参数:如下列代码所示,securitySchemes的ApiKey中增加一个名为“Authorization”,type为“header”的参数。
- 在Swagger2的securityContexts中通过正则表达式,设置需要使用参数的接口(或者说,是去除掉不需要使用参数的接口),如下列代码所示,通过("^(?!auth).*$"),所有包含"auth"的接口不需要使用securitySchemes。即不需要使用上文中设置的名为“Authorization”,type为“header”的参数
- 设置完成后进入SwaggerUI,右上角出现“Authorization”按钮,点击即可输入我们配置的参数。
对于不需要输入参数的接口(上文所述的包含auth的接口),在未输入Authorization参数就可以访问。
其他接口则将返回401错误。点击右上角“Authorization”按钮,输入配置的参数后即可访问。参数输入后全局有效,无需每个接口单独输入。
这样在只需输入一次token验证,如果验证不通过则无法调用接口,,当然验证得在接口里写,这个就不用我多说了吧,如果有不明白的,可以留言评论。
四、下载地址
Jar包,项目demo,等我都已经上传了,大家可直接下载使用。
download:/download/qq_25814003/10622612