请求模板生成器 (request.template.js)
用于自动生成 TypeScript 请求函数的工具模板
使用说明
- 在项目根目录下创建
.vscode 文件夹
- 在文件夹内创建
request.template.js 文件
- 复制以下代码到文件中
模板代码
/**
* 生成请求模板
*
* @param {{
* base:基础请求路径
* path: 请求路径
* method: 请求方式
* Params: 路径请求的参数
* RequestBody: 请求体参数
* Response: 接口返回数据类型
* description: 接口描述文字
* name: 接口名称
* template: 生成的ts文件内容
* }}
*/
function requestTemplate(api) {
// 请求参数字符串
let paramsStr = ``
let uploadStr = ''
if (api.Params?.[0]?.apiParam?.length > 0) {
paramsStr = `params:${api.name}.Params`
uploadStr = 'params'
}
if (api.RequestBody?.[0]?.apiParam?.length > 0) {
paramsStr = `data:${api.name}.RequestBody`
uploadStr = 'data'
}
const tempate = `export const ${api.name} = async(${paramsStr}):Promise<${api.name}.Response>=>{
return http.${api.method}(${api?.base || ''}('${api.path}'),{${uploadStr}})
}`
return tempate
}
module.exports = { requestTemplate }
功能说明
输入参数:
api : 包含接口配置的对象
base : 基础请求路径
path : 接口路径
method : HTTP 方法
Params : 路径参数定义
RequestBody : 请求体参数
Response : 响应类型
description : 接口描述
name : 接口名称
输出结果:
- 生成标准的 TypeScript 异步请求函数
- 自动处理参数传递方式(params/data)
- 包含完整的类型定义
生成示例
输入配置:
{
"name": "getUserInfo",
"base": "api/v1",
"path": "/user/info",
"method": "get",
"Params": [{...}],
"Response": "UserInfo"
}
输出结果:
export const getUserInfo = async (params: getUserInfo.Params): Promise<getUserInfo.Response> => {
return http.get('api/v1/user/info', { params })
}
注意事项
- 确保项目中已安装对应的 HTTP 请求库
- 类型定义文件需提前定义好
- 此模板需要配合代码生成工具使用
| |