• 基于REST API无侵入的静态接口文档生成工具


    项目是基于SpringBoot开发

    好处

    • 使用的是注释(非注解),对代码无侵入
    • 生成的文档是静态文档,减小服务压力

    依赖

    • pom.xml中添加
    <!--接口文档生成-->
    <dependency>
        <groupId>io.github.yedaxia</groupId>
        <artifactId>japidocs</artifactId>
        <version>1.4.4</version>
        <!--scope为test时,只在测试环境有效,即打包为jar时不包含该依赖-->
        <scope>test</scope>
    </dependency>
    

    使用

    • 在test目录中使用
    import io.github.yedaxia.apidocs.Docs;
    import io.github.yedaxia.apidocs.DocsConfig;
    import org.junit.jupiter.api.Test;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    class ApplicationTests {
        @Test
        void createApiDoc() {
            DocsConfig config = new DocsConfig();
            config.setProjectPath("D:/api-doc-demo"); //项目路径
            config.setProjectName("接口文档生成案例"); //项目名称
            config.setApiVersion("V1.0"); //接口版本
            config.setDocsPath("D:/api-doc"); //生成接口文档的位置
            config.setAutoGenerate(Boolean.TRUE);  //自动配置
            Docs.buildHtmlDocs(config);
        }
    }
    

    准则

    • japidocs是基于JAVA DOC生成的文档
    • japidocs会对源码中的Controller进行分析
    • 通过分析接口方法上的注释、方法名、参数、返回值等来生成对应文档

    基于以上原因,我们在编写接口时尽量使注释变得易于理解

    /**
     * 用户接口(这里的注释最终变成文档的菜单,没有则使用Controller类名)
     */
    @RequestMapping("/user")
    @RestController
    public class UserController {
    
        /**
         * 通过用户名称获取用户列表(这里的注释最终变成接口的标题)
         * @param name 用户名称(这里的注释最终变成接口参数的描述)
         */
        @GetMapping("/list")
        public List<User> list(@RequestParam String name) {
            return null;
        }
    
        /**
         * 存储用户
         * @param user
         */
        @PostMapping("/save")
        public Msg<Boolean> saveUser(@RequestBody User user) {
            return null;
        }
    
        /**
         * 通过id删除用户
         * @param userId 用户id
         */
        @PostMapping("/delete")
        public ApiResult deleteUser(@RequestParam Long userId) {
            return null;
        }
    }
    

    相关注解使用

    • @Ignore 注解,该注解全限定名为
      jdk.nashorn.internal.ir.annotations.Ignore
      是jdk内部注解,用在Controller类上时,生成文档会忽略该类,
      用在方法上,忽略该方法
    • 更多内容查看这里
    不积跬步无以至千里
  • 相关阅读:
    统计脚本代码行数
    expr算术运算
    lsof命令
    测试当前机器可以创建多少线程
    守护进程写日志
    文件描述符fd,struct files_struct
    linux查看反汇编
    信号补充
    Windows10获取VS管理员权限总是很烦人
    asp.net中的Filter类型其实是被当作单例的
  • 原文地址:https://www.cnblogs.com/xiaogblog/p/15720183.html
Copyright © 2020-2023  润新知