你还在用Swagger?试试这个神器!

您所在的位置:网站首页 写字楼交税怎么交 你还在用Swagger?试试这个神器!

你还在用Swagger?试试这个神器!

#你还在用Swagger?试试这个神器!| 来源: 网络整理| 查看: 265

/*** @authorJava旅途 * @Deion用户接口类 * @Date2020-06-15 21:46 */@RequestMapping( "/api/user") @RestControllerpublicclassUserController{}

如果我们想生成方法的注释,只能直接加注释,不能通过加 @Deion 来生成。

/*** 查询用户* @paramage 年龄 * @returnR */@GetMapping( "/list") publicR list(@RequestParam intage) { User user = newUser( "Java旅途", 18); returnR.ok(user); }

JApiDocs 可以自动生成实体类。关于实体类属性的注释有三种方式,生成的效果都是一样的,像下面这样:

/*** 用户名称*/privateString name; /*** 用户年龄*/privateintage; // 用户名称privateString name; // 用户年龄privateintage; privateString name; // 用户名称privateintage; // 用户年龄

除了支持常用的 model 外,还支持 iOS 的 model 生成效果,像下面这样:

3.2 请求参数

如果提交的表单是 application/x-www-form-urlencoded 类型的key/value格式,则通过@param注解来获取参数,在参数后面添加注释,示例如下:

/*** @paramage 年龄 */@GetMapping( "/list") publicR list(@RequestParam intage) { User user = newUser( "Java旅途", 18); returnR.ok(user); }

生成的文档效果如下:

请求参数

参数名 类型 必须 描述 age int 否 年龄

如果提交的表单是 application/json 类型的 JSON 数据格式,像下面这样:

/*** @paramuser * @return*/@PostMapping( "/add") publicR add( @RequestBodyUser user){ returnR.ok(user); }

生成的文档效果如下:

请求参数

{"name": "string //用户名称", "age": "int //用户年龄"}

3.3 响应结果

我们知道,如果 Controller 声明了@RestController,SpringBoot 会把返回的对象直接序列成 JSON 数据格式返回给前端。JApiDocs 也利用了这一特性来解析接口返回的结果,但由于 JApiDocs 是静态解析源码的,因此你要明确指出返回对象的类型信息,JApiDocs 支持继承、泛型、循环嵌套等复杂的类解析。

因此我们不需要再写注释,它会根据我们的返回结果进行解析,效果如下:

返回结果:

{"code": "int", "msg": "string", "data": { "name": "string //用户名称", "age": "int //用户年龄"}}

最终生成的接口文档像下面这样:

4. 高级配置

4.1 @ApiDoc

如果你不希望把所有的接口都导出,可以在配置中设置config.setAutoGenerate(Boolean.FALSE); 然后在想要生成的接口上添加 @ApiDoc。

@ApiDoc 有以下三个属性:

result:可以直接声明返回的对象类型。如果你进行声明,将覆盖SpringBoot 的返回对象;

url:请求URL,扩展字段。用于支持非 SpringBoot 项目;

method:请求方法,扩展字段。用于支持非 SpringBoot 项目。

@ ApiDoc( result= User.class, url = "/api/user/view", method = "post")

4.2 @Ignore

如果不想导出对象里面的某个字段,可以给这个字段加上 @Ignore 注解。这样 JApiDocs 导出文档的时候就会自动忽略掉了。

publicclassUser{ @Ignoreprivateintage; }

5. 总结

JApiDocs 就介绍到这里了,优势劣势大家很容易就看出来了。几乎不需要注释即可生成接口文档,仅有的几个注释我们也可以通过 IDE 来自动生成。但是 JApiDocs 不具备 Swagger 在线调试功能。如果有一天 JApiDocs 支持在线调试后,那时候肯定会有一大波追随者,毕竟写代码的都不愿意写多余的注解。返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3