快速开始

maven

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

配置

任何一个 main 方法直接运行即可:

DocsConfig config = new DocsConfig();
config.setProjectPath("your springboot project path"); // root project path 
config.setProjectName("ProjectName"); // project name
config.setApiVersion("V1.0");       // api version
config.setDocsPath("your api docs path"); // api docs target path
config.setAutoGenerate(Boolean.TRUE);  // auto generate 
Docs.buildHtmlDocs(config); // execute to generate 

代码风格要求

JApiDocs 是通过解析 Java 源代码实现的。

为了让JApiDocs正常工作,项目中Controller的编写需要遵循一定的编码标准。

可以参考源码中的SpringDemo模块进行对比理解。

1. 添加必要的代码注释

班级评论将对应于第一级分组。

也可以通过@description 指定组名; JApiDocs 将使用@param 查找参数以进行进一步分析。

/**
 * User API
 */
@RequestMapping("/api/user/")
@RestController
public class UserController {


    /**
     * Get User List
     * @param listForm
     */
    @RequestMapping(path = "list", method = {RequestMethod.GET,  RequestMethod.POST}  )
    public ApiResult<PageResult<UserVO>> list(UserListForm listForm){
        return null;
    }

    /**
     * Save User
     * @param userForm
     */
    @PostMapping(path = "save")
    public ApiResult<UserVO> saveUser(@RequestBody UserForm userForm){
        return null;
    }

    /**
     * Delete User
     * @param userId user id
     */
    @PostMapping("delete")
    public ApiResult deleteUser(@RequestParam Long userId){
        return null;
    }
}

如果提交的表单是 application/x-www-form-urlencoded 类型,可以在 @param 后面添加说明或者在 JavaBean 对象中添加注释:

// in @param
@param userId user id
// at FormBean
public class UserListForm extends PageForm{
    private Integer status; //user status
    private String name; //user name
}

小结

这种类似于基于 maven 插件的源码解析。

难度倒不是特别大,类似于我以前写的 maven 插件。

不过做的特性比较丰富,这一点非常难得。

参考资料

https://github.com/YeDaxia/JApiDocs