JFinal集成SwaggerUI生成接口文档

以前用Spring的时候,使用的是SwaggerUI生成接口文档,不仅能随时更新反馈接口信息,同时提供接口测试功能,具体请参考https://swagger.io/swagger-ui/

然后使用JFinal的时候,发现官方没有提供集成方案,网上搜索有提供一个集成JDoc的,感觉界面和功能没有Swagger好,于是决定参考swagger-spring写JFinal集成SwaggerUI的插件

现在已经实现大体功能:

主要提供四个注解:

image.png

测试使用:

@ApiOperation(url = "/test", tag = "index", response = LogInfo.class, httpMethod = "get", description = "测试json")
@ApiParams({
        @ApiParam(name = "id", description = "编号", required = true, dataType = "Long"),
        @ApiParam(name = "name", description = "姓名", required = true, dataType = "String")
})
public void test() {
    System.out.println(getPara("id") + " ======== " + getPara("name"));
    LogUser user = new LogUser();
    user.setId(1L);
    renderJson(user);
}

最终效果图:image.png

image.pngimage.png

代码地址:http://git.oschina.net/leeckent/jfinal-swagger

评论区

dengfeng

2018-05-15 18:18

@JFinal 跟文档上设置的一摸一样
,开发工具是eclipse mars.2
,jfinal和jfinal-java8的版本是3.4, 设置为3.3也不行
检查了eclipse的所有设置都是1.8,选项也勾上了,
pom.xml里面也设置了compiler-plugin

JFinal

2018-05-15 18:25

@dengfeng clean 一下项目,然后勾选 eclipse 的自动编译,重启一下 ecilpse 看看

dengfeng

2018-05-15 18:35

@JFinal还是不行,对了,我记起来了,好像之前按照开发文档上的demo敲的时候,action还可以带参数,然后跟着文档往下看,加了一些代码后就不行了,我不知道是不是后面加的一些handler或者interceptor导致不能用带参action了

JFinal

2018-05-15 19:13

@dengfeng 先注掉 handler与 interceptor 试一下可不可以

dengfeng

2018-05-16 10:00

@JFinal 不行了,我重新高了一个最简单的项目,就配置了一个路由,action一带参就访问404,不带参就正常访问.一带参数就默认访问到controller的index方法了,要是没有index方法就报404,有index方法就报400,参数转换错误.

dengfeng

2018-05-16 10:04

@JFinal 我发现启动的时候加载action,直接就把controller里面有参数的method给过滤了,根本就没有加载到系统里面去..不知道是什么问题.

dengfeng

2018-05-16 10:23

@JFinal if (excludedMethodName.contains(methodName) || method.getParameterTypes().length != 0) {
continue;
} 在buildActionMapping方法中直接过滤掉了带参的方法,是这个原因吗

dengfeng

2018-05-16 10:28

@JFinal 我的程序好像没有跑jfinal-java8的那个ActionMapping.class,跑的是jfinal里面那个ActionMapping.class,如果eclipse配置正常是不是会走java8的那个ActionMapping.class?

dengfeng

2018-05-16 10:35

@JFinal 找到原因了,我在pom里面加了jfinal3.4的jar和jfinal-java8的jar.会错文档的意思了,我以为jfinal-java8是jfinal的增强包.....我把jfinal3.4的jar删除就行了.不好意思...

giianhui

2018-07-04 09:09

@leeckent apiresponse,没有这个注解

java小子

2018-08-10 17:06

返回结果,在哪里写注释。

Shydow

2018-08-18 12:57

感谢分享,试用后简单的补充几点大家使用中可能需要修改的地方:
1. SwaggerRoutes中的路径需要配置和自己的一致
2. SwaggerController中的api方法设置doc的swagger为2.0,设置schemes为“http”(默认是https)
3. swagger ui中的index.html中.js和.css的引用路径注意和项目保持一致,防止找不到
4. 如果没用maven,需要的jar包有:commons-lang3-3.4.jar guava-18.0.jar

hotsmile

2018-09-07 10:19

@leeckent,抽空优化一下吧,谢谢了

leeckent

2018-10-20 11:17

不好意思,最近没进来看,近期会把问题整理后,重新更新的,谢谢大家了

KingTiger

2018-11-21 16:39

swagger-ui 用的哪个版本,我从1-3挨个试了一遍,都不行,给个swgger版本号吧

再努力一点

2019-02-20 12:56

@Shydow你好,在swagger页面上只查到类上标注的@Api注解,查不到方法上标注的注解

ljy888

2019-03-11 10:21

@rirai schema要如何写?

速贝

2019-07-17 15:35

@yjjdick1990 同问 请问这个问题解决了没有

cs3230524

2019-09-27 21:25

搞不懂你们写文档都只管入参,不管 responese 么,那这个文档谁看得懂。。。

Jovi521

2019-11-15 14:37

这两天项目需要,已经加载依赖,但是用/swagger访问会报404,版本4.5,其他页面也是copy的作者的,郁闷

Jovi521

2019-11-15 14:59

@Jovi521 刚刚仔细检查了下,是因为index.html里面加载静态资源的路径,要根据自己实际项目配置,搞了半天

热门分享

扫码入社