jfinal-swagger接口管理神器

由于项目接口多变,苦于对接口的管理,随发现了swagger的神奇作用,于是借鉴了社区的某位大佬的代码改造了一番,可以简单使用。

源码:https://gitee.com/zdkhqh/JfinalSwagger

<dependency>
    <groupId>top.hequehua</groupId>
    <artifactId>jfinal-swagger</artifactId>
    <version>0.1.5</version>
</dependency>


使用示例:

image.png

image.png


使用方法:

  1. 添加路由image.png

  2. 添加前端处理器image.png

  3. 配置插件image.png



由于返回前端的数据为了安全和省流量,只传前端需要的字段:

于是用Dto返回:Model --> XXXDto (model转换为java对象)

image.png

评论区

l745230

2019-04-30 08:27

跟其他几个版本jfinal-swagger比起来,你这套标签好不好用还不知道.但是前端UI已经赢了.

禾雀花

2019-04-30 08:51

@l745230 前端UI用的是swagger-bootstrap-ui(Author: xiaoyumin)

kumi

2019-04-30 10:12

启动项目报错
java.lang.ClassCastException: com.tpson.swagger.routes.MySwaggerRoutes cannot be cast to com.jfinal.config.Routes

kumi

2019-04-30 10:27

@kumi 我用的你的jar包,但是我如果把你的项目直接集成进去就没问题,是jar包的问题吗

l745230

2019-04-30 11:14

@禾雀花 高端大气上档次的前端UI.不错不错

kumi

2019-04-30 11:55

我现在手动集成进去之后,访问127.0.0.1/swagger 报404

禾雀花

2019-04-30 12:29

@kumi 重新拉下代码,或者自己打包试下,404看下使用方法2配置了没

禾雀花

2019-04-30 12:32

@kumi 127.0.0.1/swagger这个访问去掉了,用127.0.0.1/doc.html

kumi

2019-04-30 12:40

@禾雀花 谢谢,可以访问了,但是新的问题是我写了controller没有识别,basepackage设置的我controller的目录

禾雀花

2019-04-30 13:12

@kumi 然后每个controller要加上注解如@Api(description = "登陆相关接口")

kumi

2019-04-30 17:31

@禾雀花 每个Controller都添加了@Api(description = "xxx"),每个接口也写了你图上那些注解,,可还是没有识别到我的Controller

禾雀花

2019-04-30 19:03

@kumi 插件配置了吗 docApiUrl参数这个不要变("swagger/api"),这个是请求数据的接口
me.add(new SwaggerPlugin(WebConfig.enable_swagger)
.addSwaggerDoc(
new SwaggerDoc("127.0.0.1", "XXX.controller", "WEB端接口", "swagger/api"))
);

kumi

2019-05-02 14:07

@禾雀花 我发现问题了,好像在configRoute方法里面只能addRouter才生效,addController不生效

yyyyangzi

2019-05-05 11:17

请问大佬 apiResponse 中的dto怎么写?

nommpop

2019-05-05 11:24

@禾雀花 我这边总是报这个错误,请问是什么原因
java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
at top.hequehua.swagger.handler.WebJarsHandler.handle(WebJarsHandler.java:41)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:86)

禾雀花

2019-05-05 13:13

@yyyyangzi
@ApiModel(description = "图片上传成功后返回的信息")
public class PhotoDto {
@ApiParam(description = "图片id")
private Integer id;
@ApiParam(description = "图片MD5值")
private Integer md5;
@ApiParam(description = "图片地址")
private Integer url;
@ApiParam(description = "图片原文件名")
private String originalFileName;
@ApiParam(description = "图片类型")
private String fileType;
@ApiParam(description = "图片宽度")
private Integer width;
@ApiParam(description = "图片高度")
private Integer height;
@ApiParam(description = "图片上传时间")
private Integer addTime;
}

禾雀花

2019-05-05 13:15

@nommpop
会不会这个没导进来:

commons-io
commons-io
2.5

罗三爷

2019-05-05 17:30

JDK多少版本的?1.6报Unsupported major.minor version 52.0

禾雀花

2019-05-05 18:48

nommpop

2019-05-05 19:29

@禾雀花 在新项目导入commons-io就可以了,谢谢啊,真好用

nommpop

2019-05-05 19:31

@禾雀花 那个Dto是不是得根据所使用的字段自己构造一个出来呀

禾雀花

2019-05-06 08:59

nommpop

2019-05-06 09:10

@禾雀花 好像在configRoute下直接注册的controller不能被发现,只能通过new Route()的方式才有用,另外就是如果我返回的是txt或者html,不是json,那个Apiresponse该怎么写呢

禾雀花

2019-05-06 11:28

@nommpop 这个只适合返回json数据,前后端分离的接口文档

nommpop

2019-05-06 16:55

@禾雀花 如何是多个包下面的controller需要生成文档是不是需要添加多个SwaggerDoc呢,如果我没有返回任何东西是不是ApiResponse不用写呢

热门分享

扫码入社