createApi
package version >0.4.0
shadcn any version
author: cmtlyt
update time: 2026/04/08 15:42:00
创建单个 API 请求方法,提供类型安全的 API 定义和灵活的配置选项。
特性
- 类型安全: 完整的 TypeScript 类型支持
- 灵活配置: 支持自定义请求配置和默认配置
- URL 参数: 支持 RESTful 风格的 URL 参数
- 数据转换: 支持请求和响应的数据转换
- 拦截器: 支持请求和响应拦截
- Mock 支持: 内置 Mock 模式
基础用法
创建简单的 API
使用完整 URL
高级用法
URL 参数
定义带参数的 URL,使用 Custom 方法调用:
多个 URL 参数
URL 参数类型支持
params 支持 string 和 number 类型,number 类型会自动转换为字符串:
响应解析
支持多种响应解析方式:
数据转换
使用 tdto、tvo、onRequest、onResponse 进行数据转换:
自定义配置请求
API Reference
createApi
创建单个 API 请求方法。
参数
返回值
返回一个可调用的 API 方法,支持 $、$$、$$r 属性和 $updateBaseUrl 方法。
defineApi
定义 API 配置,获取更好的类型提示。
参数
返回值
返回配置对象,标记为已定义,提供更好的类型推断。
注意事项
⚠️ URL 参数
- URL 中包含
/:param格式的参数时,必须使用Custom方法调用 - 普通方法不支持 URL 参数,会抛出
TypeError - 调用时必须通过
params选项传递参数值 - params 支持
string和number类型,number 类型会自动转换为字符串 - 数字 0 作为参数值是有效的,不会被 falsy 检查过滤
⚠️ 类型提示
- 建议使用
defineApi定义配置,以获得更好的类型提示 - 不使用
defineApi定义带参数的 URL 时,会输出警告信息
🔧 Hook 执行顺序
数据转换 Hook 的执行顺序:
tdto- 请求前转换数据onRequest- 请求拦截onResponse/parser- 响应拦截/解析tvo- 响应后转换数据
🔧 实例属性
$- 获取 API 配置对象$$- 获取默认配置(如果没有提供默认配置则为undefined)$$r- 获取实际应用的默认配置$updateBaseUrl- 动态更新 Base URL- 多次访问同一个 API 会返回相同的引用