修复时间: 2025-12-17
问题描述: API 文档中部分接口的 body 请求参数显示为 "UNKNOWN"
修复方式: 为所有不需要请求参数的接口显式声明空 requestSchema
当 createActionRoute 没有显式定义 requestSchema 时,会使用默认值:
const {
requestSchema = z.object({}).passthrough(), // ⚠️ 带 passthrough 的空对象
// ...
} = options;
问题:z.object({}).passthrough() 允许任意属性通过,导致 OpenAPI 生成器无法推断具体结构,文档显示为 UNKNOWN。
为不需要参数的接口显式声明空 requestSchema:
{
requestSchema: z.object({}).describe("无需请求参数"), // ✅ 清晰标注
// ...
}
POST /api/actions/users/getUsers - 获取用户列表POST /api/actions/providers/getProviders - 获取供应商列表POST /api/actions/providers/getProvidersHealthStatus - 获取供应商健康状态POST /api/actions/model-prices/getModelPrices - 获取模型价格列表POST /api/actions/model-prices/syncLiteLLMPrices - 同步 LiteLLM 价格表POST /api/actions/model-prices/getAvailableModelsByProviderType - 获取可用模型列表POST /api/actions/model-prices/hasPriceTable - 检查价格表状态POST /api/actions/usage-logs/getModelList - 获取日志中的模型列表POST /api/actions/usage-logs/getStatusCodeList - 获取日志中的状态码列表POST /api/actions/overview/getOverviewData - 获取首页概览数据POST /api/actions/sensitive-words/listSensitiveWords - 获取敏感词列表POST /api/actions/sensitive-words/refreshCacheAction - 刷新敏感词缓存POST /api/actions/sensitive-words/getCacheStats - 获取缓存统计信息POST /api/actions/active-sessions/getActiveSessions - 获取活跃 Session 列表POST /api/actions/notifications/getNotificationSettingsAction - 获取通知设置$ bun run typecheck
✅ 通过 - 无类型错误
requestSchema)src/app/api/actions/[...route]/route.ts)// OpenAPI 文档生成的 Request Body Schema
{
"type": "object",
"additionalProperties": true, // ❌ 无法推断具体结构
"description": "UNKNOWN"
}
// OpenAPI 文档生成的 Request Body Schema
{
"type": "object",
"properties": {}, // ✅ 明确标注为空对象
"description": "无需请求参数"
}
所有接口都应显式声明 requestSchema
z.object({}).describe("无需请求参数")接口参数规范
// ✅ 推荐:显式声明
{
requestSchema: z.object({}).describe("无需请求参数"),
// ...
}
// ✅ 推荐:有参数时清晰定义
{
requestSchema: z.object({
userId: z.number().int().positive().describe("用户 ID"),
}).describe("查询用户信息的参数"),
// ...
}
// ❌ 不推荐:完全不定义(依赖默认值)
{
// 缺少 requestSchema
// ...
}
文档描述规范
.describe() 为 schema 添加中文说明src/lib/api/action-adapter-openapi.tsdocs/api-authentication-guide.md维护者: Claude Code Hub Team 最后更新: 2025-12-17