辣鸡框架,完全不建议使用。

因为不喜欢用postman,然后正好有需要一个后端文档,所以打算研究一下jersey2如何整合swagger,因为之前整合jersey框架整合得比较熟练了,所以这次没有遇到太多的难点。记录一下。

参考github:

https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5

一、实现流程

(1)pom.xml引入swagger的相关依赖

jersey2有专门和swagger整合的包,直接拿最新版本的用就可以:

swagger中自带了一大堆相关的jackson依赖,我没有另外引入jackson的包,并没有发生什么问题。

如果项目报错缺少jackson相关的类,那就可能要另外引入新版本的jackson包。

(2)直接更新web.xml

这里并不需要像配置org.glassfish.jersey.servlet.ServletContainer一样去配置swagger的api地址,只需要用:

以参数形式配置地址即可。

启动顺序也有讲究,不能先于jersey容器启动,所以设置:

难点是配置seagger的api访问路径,这里是各种资料都描述得不太好的地方!

应该是配置成jersey的路径。

比如我的jersey路径配置为/api/*:

  1. 那么访问jersey接口的路径就是:http://localhost:8080/10.10jersey/api/
  2. 所以swagger的访问路径也要配置成:http://localhost:8080/10.10jersey/api/
  3. 就可以通过访问:http://localhost:8080/10.10jersey/api/swagger.json获得swagger的相关json了。

这里如果配置成别的什么路径,都是访问不了的。在这点上我被卡了很久。

还有一个很容易遗漏地方就是:

在jersey启动的时候需要扫描swagger的相关类。

(3)测试能否获取swagger的json

访问:http://localhost:8080/10.10jersey/api/swagger.json,如果能获得swagger的json,那么基本上就整合完成了。

(4)在controller中进行使用

jersey需要在controller的类上添加注解:

这样swagger就能获取这个controller下的接口数据了。

之后就可以像在spring mvc中一样的使用了。

(5)添加swagger的ui

在github上获取swagger的ui:https://github.com/swagger-api/swagger-ui

放入项目,改一下index.html中的json地址,就可以享受后端文档的清晰简洁方便了!

二、总结

这次整合得比较快,因为github上的文档写得很好,再加上整合jersey框架已经有了不少的经验,所以基本上没遇到什么坑就整合完成了!确实是体会到了文档清晰的好处!

发表评论

电子邮件地址不会被公开。 必填项已用*标注