github地址:https://github.com/410919244/wmeimob
根据javadoc注释生成前端调用接口文档
需与注解@RequestMapping结合使用,也就是说如果接口必需包含指定的头部header注解必需添加headers属性
/**
* 登录
* @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);
}
必需和参数对应,参数可以是对象。除参数名其它都可为空,建议至少加上备注。默认值只是为了方便测试调用接口用的
/**
* 新增系统用户
* @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三个参数
/**
* 查询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 SIR
*/
private Sex sex;
在类中字段上使用,测试接口时会默认给input赋值,Sex为枚举类型
@contextPath 加在类注释上(单独生成某个模块或者项目可在全局类中指定)
/**
* 应用管理
* @contextPath /admin-sass
* @author zJun
* @date 2018年4月26日 下午7:02:23
*/
在Controller类上使用,指定请求上下文。如果生成的文档是单个项目可指定全局contextPat。该注释在同时生成多个模块(maven模块开发)时使用
@PostMapping("refresh")
@PostMapping(value="refresh", headers= {"token"})
路径使用value属性,不要使用name属性
@RequestMapping(value="/admin/weixin/api", headers= {"token"})
表示该类下的所有接口头部header必需包含token
com.wmeimob
wmeimob-doclet
jar
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
如果您的项目接口允许跨域访问,您可以随意配置。否则请将下面配置与测试接口域名一致。
您可以设置虚拟域名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;
}
请求参数
![](https://img.haomeiwen.com/i5439890/ac71791461732049.png)
返回说明
![](https://img.haomeiwen.com/i5439890/8e925d3cbb8e2ab9.png)
环境变量
![](https://img.haomeiwen.com/i5439890/c3145d4cfb19d955.png)
比如 A类中有一个属性是A类型。或者A中有B,B中有A这样
支付宝
![](https://img.haomeiwen.com/i5439890/0e12c6c8f792ab34.png)
微信
![](https://img.haomeiwen.com/i5439890/c1bbe6683b0d9cb6.png)
发红包
![](https://img.haomeiwen.com/i5439890/7639772fdb11ddad.png)
网友评论