美文网首页
javadoc生成接口文档模仿postman可直接调用

javadoc生成接口文档模仿postman可直接调用

作者: 03ddb4e5ef2f | 来源:发表于2018-07-05 17:47 被阅读36次

    github地址:https://github.com/410919244/wmeimob

    根据javadoc注释生成前端调用接口文档

    自定义注释

    @header 参数名 备注

    需与注解@RequestMapping结合使用,也就是说如果接口必需包含指定的头部header注解必需添加headers属性

    @param 参数名 备注 默认值 是否必需

    /**

    * 登录

    * @param username 登录账号 410919244

    * @param password 登录密码 123456

    * @return Token

    * @author zJun

    * @date 2018年3月27日 上午10:10:50

    */

    @PostMapping("token")

    public ResponseEntity auth(String username, String password) {

        return ResponseEntity.ok(token);

    }

    必需和参数对应,参数可以是对象。除参数名其它都可为空,建议至少加上备注。默认值只是为了方便测试调用接口用的

    @choice 选中属性 空格分隔

    /**

    * 新增系统用户

    * @param user

    * @choice fullName account password

    * @return 返回新增后系统用户ID

    * @author zJun

    * @date 2018年7月3日 下午4:44:16q

    */

    @PostMapping

    public BigInteger add(AdminUser user) {

    checkAuth();

    user.setGmtCreate(new Date());

    user.setGmtModified(new Date());

    iAdminUserDao.save(user);

    return user.getId();

    }

    当参数是对象时使用,表示该接口只需要fullName、account、password三个参数

    @exclude 排除属性 空格分割

    /**

    * 查询UserDTO

    * @param dto 测试

    * @exclude cars job

    * @return UserDTO

    * @author zJun

    * @date 2018年7月4日 下午9:25:11

    */

    @GetMapping("select")

    public UserDTO select(UserDTO dto) {

    return new UserDTO();

    }

    当参数是对象时使用,表示该接口排除的字段

    @default 默认值 可加在类属性上

    /**

    * 性别

    * @default SIR

    */

    private Sex sex;

    在类中字段上使用,测试接口时会默认给input赋值,Sex为枚举类型

    @contextPath 加在类注释上(单独生成某个模块或者项目可在全局类中指定)

    /**

    * 应用管理

    * @contextPath /admin-sass

    * @author zJun

    * @date 2018年4月26日 下午7:02:23

    */

    @see 由于时间问题没写逻辑

    在Controller类上使用,指定请求上下文。如果生成的文档是单个项目可指定全局contextPat。该注释在同时生成多个模块(maven模块开发)时使用

    注解使用规范

    当接口不需要指定header时

    @PostMapping("refresh")

    当接口需要指定header参数token时

    @PostMapping(value="refresh", headers= {"token"})

    路径使用value属性,不要使用name属性

    在Controller类上使用

    @RequestMapping(value="/admin/weixin/api", headers= {"token"})

    表示该类下的所有接口头部header必需包含token

    使用说明

    pom.xml

    com.wmeimob

    wmeimob-doclet

    jar

    java代码

    package com.mm;

    import com.mm.doclet.ControllerDoclet;

    import com.mm.doclet.Main;

    import com.mm.entity.SingletonDocs;

    import com.mm.entity.SingletonModule;

    // 该文件在wmeimob-doclet-example项目中,大家可以去试试

    public class Doclet {

    public static void main(String[] args) {

    SingletonDocs instance = SingletonDocs.getInstance();

    // 全局的上下文contextPath配置

    instance.setContextPath("/doclet-api");

    // 您要加载的包路径

    String subpackages = "com.mm";

    // 项目路径;您java代码的路径

    String path = "E:\\word\\2018.5.8\\wmeimob\\wmeimob-doclet-example\\";

    // 加载代码,可多次加载。也就是说能加载多个目录的代码,maven分模块会用到

    // Main.go(path, subpackages);

    path = "E:\\word\\2018.5.8\\wmeimob\\wmeimob-doclet-example\\";

    Main.go(path, subpackages);

    // 开始解析生成JSON

    ControllerDoclet.execute();

    // 输出JSON到控制台、怎么用您自己决定。在这个项目中是复制起来保存到node/html/static/文件名.json中

    System.out.println(SingletonModule.getInstance().datoToJSONString());

    }

    }

    前端说明

    目录: node/html/ 编译后的文件

    目录: node/javadoc/ 前端源码

    原本打算将数据存数据库,因赶时间部分存本地缓存了,项目文档JSON存为文件.json放在static目录

    static目录下project.json存的是项目列表。title为网页显示的项目名,name为项目文件名(不加.json)

    例如:{title:'A', name:'test'} 项目展示名称为[A],选择后会加载[test.json]文件 test.json内容为wmeimob-doclet生成的JSON

    前端nginx部署配置

    nginx下载地址

    如果您的项目接口允许跨域访问,您可以随意配置。否则请将下面配置与测试接口域名一致。

    您可以设置虚拟域名host定向到本地,通过下面配置访问到前端页面。增加您接口的配置通过域名上下文转发到您的项目

        location /doclet {

        try_files $uri $uri/ /doclet/index_prod.html;

        root  d:/web/node/html/;

        index  index_prod.html index.htm;

    }

    location /static {

        root  d:/web/node/html/;

        index  index_prod.html index.htm;

    }

    # test为您项目的上下文,8090:您项目的端口

    location /test {

    proxy_pass    http://127.0.0.1:8090/test;

    }

    效果展示

    请求参数 

    返回说明 

    环境变量 

    注意不要使用循环属性,否则会出现死循环。

    比如 A类中有一个属性是A类型。或者A中有B,B中有A这样

    有事扫码

    支付宝

    微信

    发红包

    相关文章

      网友评论

          本文标题:javadoc生成接口文档模仿postman可直接调用

          本文链接:https://www.haomeiwen.com/subject/fqxuottx.html