跳到主要内容
版本:v3

重命名

介绍

本插件用于对 API 接口的 URL 和参数进行重命名转换,支持多种命名风格和自定义转换规则。主要功能包括:

  • 支持 URL/请求参数/路径参数/请求体/响应数据/引用类型名的重命名
  • 内置小驼峰式(camelCase)、大驼峰式(pascalCase)、中划线(kebabCase)和下划线式(snakeCase)命名转换
  • 支持自定义匹配规则和转换函数
  • 支持多规则配置

基本使用

alova.config.js
import { defineConfig } from '@alova/wormhole';
import { rename } from '@alova/wormhole/plugin';

export default defineConfig({
generator: [
{
// ...
plugin: [
// 将URL中的下划线转为驼峰命名
rename({ style: 'camelCase' })
]
}
]
});

配置参数

interface Config {
/**
* 生效范围,默认为'url'
* url: 接口路径
* params: 查询参数
* pathParams: 路径参数
* data: 请求体数据
* response: 响应数据
* refName:引用类型名
*/
scope?: 'url' | 'params' | 'pathParams' | 'data' | 'response' | 'refName';

/**
* 匹配规则,不指定则转换全部
* string: 包含此字符串
* RegExp: 匹配此正则
* function: 自定义匹配函数
*/
match?: string | RegExp | ((key: string) => boolean);

/**
* 命名风格
* camelCase: 小驼峰命名(userName)
* kebabCase: 中划线命令(user-name)
* snakecore: 下划线命名(user_name)
* pascalCase: 大驼峰命名(UserName)
*/
style?: 'camelCase' | 'kebabCase' | 'snakeCase' | 'pascalCase';

/**
* 自定义转换函数
* 会在style转换前执行
*/
transform?: (apiDescriptor: ApiDescriptor) => string;
}

function rename(config: Config | Config[]): ApiPlugin;

注意 1.refNamekebabCase不能同时配置因为类型名不能设置为中划线的形式 2.paramspathParamsdataresponse只转换第一层的名称

多规则配置

// 同时配置多个转换规则
// 转换前: /api/get_data/{item_id}
// 转换后: /api/getData/{itemId}
rename([
{
scope: 'url',
style: 'camelCase',
match: /_/ // 只转换包含下划线的部分
},
{
scope: 'pathParams',
style: 'camelCase'
}
]);

自定义匹配规则

// 只转换长度超过5的参数名
rename({
scope: 'params',
match: key => key.length > 5,
style: 'camelCase'
});

自定义转换函数

// 将特定参数重命名
rename({
scope: 'data',
match: ['user_info', 'order_list'],
transform: api => {
const map = {
user_info: 'user',
order_list: 'orders'
};
return map[api.key] || api.key;
}
});

注意:转换完成后建议检查命名是否符合规范,特别是使用自定义转换时。