听说丝袜哥(swagger)不好用试试JApiDocs 吧.

x33g5p2x  于2021-08-23 转载在 Java  
字(2.6k)|赞(0)|评价(0)|浏览(183)

一介绍

JApiDocs 是一个符合 Java 编程习惯的 Api 文档生成工具。最大程度地利用 Java 的语法特性,你只管用心设计好接口,添加必要的注释,JApiDocs 会帮你导出一份漂亮的 Html 文档,并生成相关的 Java 和 Object-C 相关数据模型代码,从此,Android 和 IOS 的同学可以少敲很多代码了,你也不需要费力维护接口文档的变化,只需要维护好你的代码就可以了。

有人嫌弃使用Swagger 要使用很多注解, 当项目比较大时,光注解就需要写很多时间,然后 JApiDocs 完全可以使用Java原生的代码代替它;

官方 giee地址: https://gitee.com/yeguozhong/JApiDocs

二入门使用

2.1引入依赖

<dependency>
    <groupId>io.github.yedaxia</groupId>
    <artifactId>japidocs</artifactId>
    <version>1.4.4</version>
</dependency>

2.2 在VO上加上java注释

/**
 * @Author lsc
 * <p> 测试实体 </p>
 */
public class TestVo  {

    /** 测试名称**/
    private String testName;

    /** 测试年龄 **/
    private Long testAge;

    /** 测试时间 **/
    private LocalDateTime testTime;

    // 省略 set get
}

2.3 控制层加上java注释

/**
 * @Author lsc
 * <p>测试 </p>
 */
@RestController
public class TestController {

   /**
    * 测试get
    * @param testVo
    */
    @GetMapping(value = "info")
    public ResponseEntity<TestVo> testGet(TestVo testVo){
        return ResponseEntity.ok().body(testVo);
    }

    /**
     * 测试get参数
     * @param id
     */
    @GetMapping(value = "info/test")
    public ResponseEntity<Long> test(@RequestParam Long id){
        return ResponseEntity.ok().body(id);
    }

    /**
     * 测试post
     * @param testVo
     */
    @PostMapping(value = "info")
    public ResponseEntity<Long> testPost(@RequestBody TestVo testVo){
        return ResponseEntity.ok().body(1L);
    }

    /**
     * 测试delete
     * @param id
     */
    @DeleteMapping(value = "info/{id}")
    public ResponseEntity<Long> testPost(@PathVariable Long id){
        return ResponseEntity.ok().body(1L);
    }

}

2.4 生成文档

 public static void main(String[] args) {
        // 1. 创建生成文档的配置
        DocsConfig config = new DocsConfig();
        // 项目所在目录
        config.setProjectPath("C:/java/zszxz/studys-pringboot/springboot-JApiDocs");
        // 生成 HTML 接口文档的目标目录
        config.setDocsPath("C:/mydata/generator/japi");
        // 自动生成
        config.setAutoGenerate(Boolean.TRUE);
        // 项目名
        config.setProjectName("japi测试项目");
        // API 版本号
        config.setApiVersion("V1.0");
        // 使用 MD 插件,额外生成 MD 格式的接口文档
        config.addPlugin(new MarkdownDocPlugin());
        // 2. 执行生成 HTML 接口文档
        Docs.buildHtmlDocs(config);

    }

生成文档目录如下

访问 index 页面

三高级用法

高级用法基本我们都用不到,了解下;

3.1@ApiDoc

默认情况下,JApiDocs仅导出声明@ApiDoc的api。 我们之前通过设config.setAutoGenerate(Boolean.TRUE)删除了此限制。

如果不想导出所有api,则可以关闭autoGenerate并将@ApiDoc添加到Controller类或api方法中,以确定需要导出的api

让我们看看@ApiDoc如何在api方法上工作:

result :返回的对象类型,它将覆盖SpringBoot的返回对象
url:请求URL,扩展字段,用于支持非SpringBoot项目
method:请求方法,扩展字段,用于支持非SpringBoot项目

示例

@ApiDoc(result = AdminVO.class, url = "/api/v1/admin/login2", method = "post")

将 @ApiDoc 放在非springboot的项目上就是很好的选择

3.2 @Ignore

如果不想导出实体上的某个字段就可以使用@Ignore 注解

示例

public class TestVo  {

    /** 测试名称**/
    @Ignore
    private String testName;
}    

3.3 导出 Markdown

在配置时加上下面这行代码就可以生成 Markdown 文件

config.addPlugin(new MarkdownDocPlugin());

最后

关于本教程示例源码合并在 springboot 系列教程源码: 公众号后台回复 springboot
知识追寻者开源的权限管理系统: https://github.com/zszxz/zboot

希望大家多多支持,给个start!!

相关文章