引言
关于我再写Express时候,我每次写完一个接口就要在postman中手动写一个request文件,我觉得很麻烦,所以我写了一个CLI工具,直接Npm 安装后直接可按照路径读取,生成Collocation的Json,如果对您有用请给我Github的项目一个 star⭐,项目已经开源。
项目地址是 node-postman-generator
使用
安装可以这样
npm install node-postman-generator --save-dev
需要有npx的环境,-i是input输入routes的路径,-o是生成json的保存路径
npx node-postman-generator -i ./routes -o ./postman/collection.json
还有其他的-help可以查看其他参数
拓展说明
如果需要支持Express外其他框架,可以查看项目如何书写的,我的项目结构是
项目根目录/
├── bin/ # CLI入口
├── src/
│ ├── builder/ # Postman集合构建器
│ ├── parser/ # 路由解析器
│ │ ├── index.js # 主解析逻辑
│ │ └── [框架名称]/ # 各框架专用解析器
│ └── index.js # 模块入口
└── test/ # 测试用例
- builder目前只有postman2.1,可以支持自定义支持的文件生成结构可在builder的新增一个文件
- parser是解析器,用来解析指定的模块的,里面有parser和comment,parser用来识别文件,comment用来生成文件结构树。
- 我自定义了一套 JSDoc 规范,可以用来支持生成的文件的各种参数的。
JSDOC规范
/**
* @api {get} /users 获取用户列表
* @apiGroup User
* @apiParam {Number} [page=1] 页面数
*/
router.get("/users", getUserList);
/**
* @apiParam {Number} name Description
* @apiParam {Number} [name=defaultValue]
* @apiParam {String} [name] Description
*/
/**
* @apiParamGroup [
* {"type": "String", "name": "username", "description": "Username"},
* {"type": "Number", "name": "age", "description": "User age"}
* ]
*/
/**
* @apiQuery {Number} name Description
* @apiQuery {Number} [name=defaultValue]
* @apiQuery {String} [name] Description
*/
/**
* @apiQueryGroup [
* {"type": "String", "name": "username", "description": "Username"},
* {"type": "Number", "name": "age", "description": "User age", "optional": true}
* ]
*/
/**
* @apiBody [
* {"type": "String", "name": "username", "description": "Username"},
* {"type": "Number", "name": "age", "description": "User age"}
* ]
*/
生成文件示例
查看测试用例文件: generator.test.json
结束
如果对您有帮助可以给我的文章点个赞,最好是项目一个 star⭐