import { createQueryApi } from '../src/query-api.ts'; const api = { "app_domain_manager": { /** * 获取域名信息,可以通过id或者domain进行查询 * * @param data - Request parameters * @param data.data - {object} */ "get": { "path": "app_domain_manager", "key": "get", "description": "获取域名信息,可以通过id或者domain进行查询", "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" } }, /** * 获取域名列表,支持分页 * * @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; const queryApi = createQueryApi({ api }); export { queryApi }; // ===== 类型推断示例 ===== // ✅ 示例 1:只传必需字段 domain queryApi.app_domain_manager.update({ data: { 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" } } }); // ✅ 示例 3:list 方法没有 required 字段,所有参数都是可选的 queryApi.app_domain_manager.list({ data: { page: 1, pageSize: 10 } }); // ✅ 示例 4:list 方法可以不传参数 queryApi.app_domain_manager.list({ data: {} }); // 检查类型推断 type UpdateParams = Parameters[0]; // 推断为: { data: { domain: string } & { id?: string, appId?: string, status?: "active" | "inactive", data?: Record } } type ListParams = Parameters[0]; // 推断为: { data: { page?: number, pageSize?: number } }