This commit is contained in:
2026-02-18 05:00:22 +08:00
parent ebfc779857
commit 585becb6f5

View File

@@ -1,5 +1,5 @@
import { createQueryApi } from '../src/query-api.ts'; import { createQueryApi } from '@kevisual/query/api';
const api = { const api = {
"app_domain_manager": { "app_domain_manager": {
/** /**
@@ -25,7 +25,8 @@ const api = {
"type": "string" "type": "string"
} }
}, },
"additionalProperties": false "additionalProperties": false,
"required": ["id", "domain"]
} }
}, },
"viewItem": { "viewItem": {
@@ -38,229 +39,15 @@ const api = {
"url": "/api/router", "url": "/api/router",
"source": "query-proxy-api" "source": "query-proxy-api"
} }
},
/**
* 获取域名列表,支持分页
*
* @param data - Request parameters
* @param data.data - {object}
*/
"list": {
"path": "app_domain_manager",
"key": "list",
"description": "获取域名列表,支持分页",
"metadata": {
"args": {
"data": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"page": {
"type": "number"
},
"pageSize": {
"type": "number"
}
},
"additionalProperties": false
}
},
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
},
/**
* 更新一个域名的信息
*
* @param data - Request parameters
* @param data.data - {object}
*/
"update": {
"path": "app_domain_manager",
"key": "update",
"description": "更新一个域名的信息",
"metadata": {
"args": {
"data": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"domain": {
"type": "string"
},
"appId": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"active",
"inactive"
]
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"domain"
],
"additionalProperties": false
}
},
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
},
/**
* 删除一个域名
*
* @param data - Request parameters
* @param data.data - {object}
*/
"delete": {
"path": "app_domain_manager",
"key": "delete",
"description": "删除一个域名",
"metadata": {
"args": {
"data": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"domain": {
"type": "string"
}
},
"additionalProperties": false
}
},
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
}
},
"app": {
"getDomainApp": {
"path": "app",
"key": "getDomainApp",
"metadata": {
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
}
},
"app-domain": {
"create": {
"path": "app-domain",
"key": "create",
"metadata": {
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
},
"update": {
"path": "app-domain",
"key": "update",
"metadata": {
"viewItem": {
"api": {
"url": "/api/router"
},
"type": "api",
"title": "路由"
},
"url": "/api/router",
"source": "query-proxy-api"
}
} }
} }
} as const; } as const;
const queryApi = createQueryApi({ api }); const queryApi = createQueryApi({ api });
export { queryApi }; export { queryApi };
// ===== 类型推断示例 ===== queryApi.app_domain_manager.get({
// ✅ 示例 1只传必需字段 domain
queryApi.app_domain_manager.update({
data: { data: {
domain: "example.com" id: '123',
domain: 'example.com'
} }
}); })
// ✅ 示例 2传必需字段 + 可选字段
queryApi.app_domain_manager.update({
data: {
domain: "example.com",
id: "123",
appId: "app-001",
status: "active", // enum 类型,只能是 'active' 或 'inactive'
data: { custom: "metadata" }
}
});
// ✅ 示例 3list 方法没有 required 字段,所有参数都是可选的
queryApi.app_domain_manager.list({
data: {
page: 1,
pageSize: 10
}
});
// ✅ 示例 4list 方法可以不传参数
queryApi.app_domain_manager.list({
data: {}
});
// 检查类型推断
type UpdateParams = Parameters<typeof queryApi.app_domain_manager.update>[0];
// 推断为: { data: { domain: string } & { id?: string, appId?: string, status?: "active" | "inactive", data?: Record<string, any> } }
type ListParams = Parameters<typeof queryApi.app_domain_manager.list>[0];
// 推断为: { data: { page?: number, pageSize?: number } }