Node.js 生成Postman collection CLI

157 阅读2分钟

引言

关于我再写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/ # 测试用例
  1. builder目前只有postman2.1,可以支持自定义支持的文件生成结构可在builder的新增一个文件
  2. parser是解析器,用来解析指定的模块的,里面有parser和comment,parser用来识别文件,comment用来生成文件结构树。
  3. 我自定义了一套 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⭐