Jfinal 整合Swagger生成接口文档的问题

用Jfinal开发到现在一直佩服Jfinal设计的巧妙,和代码的高效。

但是随着使用时间的增加,还是碰到一个比较严重的问题,就是周边(插件)等不太成熟,比如Spring就有大量的插件,十分好用,直接maven一下就可以了。

但是Jfinal的第三方插件,普遍用起来比较费劲,而且很多版本都不再更新,坑太多了。

为了用玛雅牛的shiro插件,还把jfinal降到3.2,用下来感觉也不太好,只好自己写了点。

现在又碰到一个问题,就是jfinal整合swagger来生成接口文档,看了不少帖子都是都是针对integer或者string类型的参数的,对于body类(json数据)的参数如何处理?已经挣扎了好几天了,感觉就差最后一步了,但是看了所有jfinal的帖子好像都没有提及,真是不知道该如何处理。

哪位大神可以帮帮我。谢谢!

评论区

rirai

2018-03-27 15:17

补充一点,我在Param类的in字段设置了body后,wagger-ui上无法编辑参数。(好像要提交body的schema才可以)

lyh061619

2018-03-27 15:59

先说你的第一个问题,玛雅牛的shiro插件,升级到3.3出现问题,是这样子的之前有人提出一个需求是启动时需要插件优先与路由,所以3.3版本在考虑到这个需求点没有考虑到有些插件必须依赖路由进行的,就会造成这情况,但情况在3.4版本就得到很好的解决,就是可能定制各模块的执行顺序,关于这个问题造成的影响,目前有一个更好的解决方案:http://www.jfinal.com/share/410你参考下,用这个方案可能说是完全不需要什么插件的,当然替换上去也没有什么大的工作量,就是直接到原来用到插件的地方拿掉,加个拦截器ShiroInterceptor,其他的保持不变。
第二个问题,嘛不太清楚你问题出现在什么地方,你看方便的话,贴点代码出来说明下,肯定一点的是,接收Json数据是要做下转换的,比如Integer[] productId = JsonKit.parse(getPara("checkbox"), Integer[].class);也就是将传过来的checkbox用Jsonkit.parse进行解析下。

JFinal

2018-03-27 16:25

集成 swagger 参考一下这两个贴子:
http://www.jfinal.com/share/347
http://www.jfinal.com/share/356

jfinal 一直专注于 MVC + ORM,你可以想象成是 spring mvc + hibernate/mybatis,一个框架自然会有自己的定位以及重点专注的目标

spring 由于历史悠久,再加上培训机构的推波助澜生态比较大,集成的周边很多。但缺点也会很明显:臃肿、学习成本高、代码量大、可控性差

可以试着读一下 Spring 源代码,光是使用 AbstractTemplateViewResolver 扩展出一个 view 来,里头有七层继承以及各种关联,是非常痛苦的一件事情

而 jfinal 扩展一个 view,只需要继承一下 Render,Render 就一层一看就明白怎么扩展

使用 Spring 基本上你只能将之当成黑盒子,老老实实地照着它的文档去使用,很难很费劲去了解它内部的工作方式,spring 太庞大了

此外,即便是 spring 的生态大,你在使用 Spring + swagger 等第三方的时候未必不会碰到问题

rirai

2018-03-27 16:41

@JFinal 老大所言极是,我也是看了网上很多评论后才决定转到Jfinal的(原来Spring也是刚入门,看了Spring的源码,越看越晕),Jfinal的源码基本还能看懂,而且Jfinal社区由老大亲自答疑感觉十分放心。
刚才提到的Swagger的例子,现在基本解决了。主要是原来的插件提供者,没有把插件写完整,只是实现了他所需要的功能而已。解决的根本还是要从Swagger官网上老老实实的把E文给搞明白才行,原来想偷个懒的。

rirai

2018-03-27 16:45

@lyh061619 谢谢您的热心回复,我现在使用Shiro的方法就是参考了你说的那个帖子。加上张开涛的教程,改写的。
关于Swagger我也加了些代码,关键要实现body的schema就可以了。谢谢大家。

JFinal

2018-03-27 16:46

@rirai 其实你要是真的把 spring 用起来,碰到的问题远远比你用 jfinal 要多得多

我用 spring 三年多时间,看过 spring 很多代码,对其十分了解

桌地要

2018-05-25 14:49

@rirai 请问最后是怎么解决post传参json的问题

JFinal

2018-05-25 22:36

@桌地要 参考这个贴子中 @玛雅牛 的回复:
http://www.jfinal.com/feedback/3747

rirai

2018-05-28 14:43

谢谢老大帮忙回复。今天才看到。

JFinal

2018-05-28 15:29

@rirai jfinal 3.4 已发布,所以 @玛雅牛 的shiro 插件可以直接使用了,而不必从 3.3 降级到 3.2 了

rirai

2018-05-29 08:40

@JFinal 太好了,谢大神!

jianggr

2018-06-10 00:40

@rirai body的schema实现可以了?能把开放出来让大家看看?

桌地要

2018-06-14 16:17

ljy888

2019-03-11 10:21

schema 要如何写?

热门反馈

扫码入社