文档
上游参考与差异

仅网关维护的接口

API 逐项需求、源码归属、字段与验收条件

当前固定源码下本组共 84 项方法 + 路径。下列为接口需求 v0.1,Owner 为 供应网关,计划阶段为 网关维护;均未宣称 OceanWay 已运行。原路径/字段默认沿用,变化须进入差异台账。

每项适用统一接口需求规则,并列出上游字段声明、控制器观察与具体补差。OpenAPI 没列必填不表示运行时可缺省;观察到的 JSON key 也不等于可写入字段。下载完整接口台账上游管理规范模型规范可查看完整嵌套 Schema。

GATEWAY-001 · GET /api/channel/

用途与归属:获取所有渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:OpenAPI 参数:query.p:integer; query.page_size:integer; query.id_sort:boolean; query.tag_mode:boolean; query.status:string; query.type:integer。处理器读取:query.id_sort, query.sort_by, query.sort_order, query.tag_mode, query.group, query.status, query.type, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 items, message, page, page_size, success, total, type_counts(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:40controller.GetAllChannels controller/channel.go:102;上游 api.jsonGET /api/channel/

GATEWAY-002 · POST /api/channel/

用途与归属:添加渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Body 字段(application/json):mode:string [规范未列必填] enum=["single", "batch", "multi_to_single"]; channel:object [规范未列必填]; channel.id:integer [规范未列必填]; channel.name:string [规范未列必填]; channel.type:integer [规范未列必填]; channel.status:integer [规范未列必填]; channel.models:string [规范未列必填]; channel.groups:string [规范未列必填]; channel.priority:integer [规范未列必填]; channel.weight:integer [规范未列必填]; channel.base_url:string [规范未列必填]; channel.tag:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 batch, count, message, multi_to_single, name, single, success, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:50controller.AddChannel controller/channel.go:613;上游 api.jsonPOST /api/channel/

GATEWAY-003 · PUT /api/channel/

用途与归属:更新渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelWrite。

请求:Body 字段(application/json):id:integer [规范未列必填]; name:string [规范未列必填]; type:integer [规范未列必填]; status:integer [规范未列必填]; models:string [规范未列必填]; groups:string [规范未列必填]; priority:integer [规范未列必填]; weight:integer [规范未列必填]; base_url:string [规范未列必填]; tag:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 append, changed_fields, data, id, message, name, replace, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:51controller.UpdateChannel controller/channel.go:962;上游 api.jsonPUT /api/channel/

GATEWAY-004 · DELETE /api/channel/:id

用途与归属:删除渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 id, message, name, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:58controller.DeleteChannel controller/channel.go:733;上游 api.jsonDELETE /api/channel/{id}

GATEWAY-005 · GET /api/channel/:id

用途与归属:获取指定渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:45controller.GetChannel controller/channel.go:393;上游 api.jsonGET /api/channel/{id}

GATEWAY-006 · POST /api/channel/:id/codex/refresh

用途与归属:RefreshCodexChannelCredential。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 account_id, channel_id, channel_name, channel_type, data, email, expires_at, last_refresh, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:63controller.RefreshCodexChannelCredential controller/channel.go:542

GATEWAY-007 · GET /api/channel/:id/codex/usage

用途与归属:GetCodexChannelUsage。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:Path:id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:64controller.GetCodexChannelUsage controller/codex_usage.go:20

GATEWAY-008 · POST /api/channel/:id/codex/usage/reset

用途与归属:ResetCodexChannelUsage。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Path:id(必填;以实际路由名为准)。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:66controller.ResetCodexChannelUsage controller/codex_usage.go:38

GATEWAY-009 · GET /api/channel/:id/codex/usage/reset-credits

用途与归属:GetCodexChannelRateLimitResetCredits。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:Path:id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:65controller.GetCodexChannelRateLimitResetCredits controller/codex_usage.go:29

GATEWAY-010 · POST /api/channel/:id/key

用途与归属:获取渠道密钥。留在供应网关。

鉴权:Root 管理身份;敏感操作安全验证。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, id, key, message, name, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:23controller.GetChannelKey controller/channel.go:417;上游 api.jsonPOST /api/channel/{id}/key

GATEWAY-011 · POST /api/channel/:id/status

用途与归属:UpdateChannelStatus。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。Body 类型:controller.ChannelStatusRequest controller/channel.go:953;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 changed, data, id, message, status, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:53controller.UpdateChannelStatus controller/channel.go:1159

GATEWAY-012 · POST /api/channel/batch

用途与归属:批量删除渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Body 字段(application/json):ids:array [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 count, data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:59controller.DeleteChannelBatch controller/channel.go:917;上游 api.jsonPOST /api/channel/batch

GATEWAY-013 · POST /api/channel/batch/tag

用途与归属:批量设置渠道标签。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelWrite。

请求:Body 字段(application/json):ids:array [规范未列必填]; tag:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 count, data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:71controller.BatchSetChannelTag controller/channel.go:1363;上游 api.jsonPOST /api/channel/batch/tag

GATEWAY-014 · POST /api/channel/copy/:id

用途与归属:复制渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填); query.suffix:string; query.reset_balance:boolean。处理器读取:path.id, query.suffix, query.reset_balance。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, id, message, name, sourceId, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:73controller.CopyChannel controller/channel.go:1437;上游 api.jsonPOST /api/channel/copy/{id}

GATEWAY-015 · DELETE /api/channel/disabled

用途与归属:删除已禁用渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 count, data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:54controller.DeleteDisabledChannel controller/channel.go:767;上游 api.jsonDELETE /api/channel/disabled

GATEWAY-016 · POST /api/channel/fetch_models

用途与归属:获取模型列表。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Body 字段(application/json):base_url:string [规范未列必填]; type:integer [规范未列必填]; key:string [规范未列必填]; channel_id:integer [规范未列必填]; advanced_custom:string [规范未列必填]; header_override:string [规范未列必填]; proxy:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:62controller.FetchModels controller/channel.go:1306;上游 api.jsonPOST /api/channel/fetch_models

GATEWAY-017 · GET /api/channel/fetch_models/:id

用途与归属:获取上游模型列表。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:61controller.FetchUpstreamModels controller/channel.go:232;上游 api.jsonGET /api/channel/fetch_models/{id}

GATEWAY-018 · POST /api/channel/fix

用途与归属:修复渠道能力。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, fails, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:60controller.FixChannelsAbilities controller/channel.go:261;上游 api.jsonPOST /api/channel/fix

GATEWAY-019 · GET /api/channel/models

用途与归属:获取渠道模型列表。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:42controller.ChannelListModels controller/model.go:318;上游 api.jsonGET /api/channel/models

GATEWAY-020 · GET /api/channel/models_enabled

用途与归属:获取已启用模型列表。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:43controller.EnabledListModels controller/model.go:341;上游 api.jsonGET /api/channel/models_enabled

GATEWAY-021 · POST /api/channel/multi_key/manage

用途与归属:管理多密钥。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body 字段(application/json):channel_id:integer [规范未列必填]; action:string [规范未列必填] enum=["get_key_status", "disable_key", "enable_key", "delete_key", "delete_disabled_keys", "enable_all_keys", "disable_all_keys"]; key_index:integer [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 action, data, delete_disabled_keys, delete_key, disable_all_keys, disable_key, enable_all_keys, enable_key, get_key_status, id, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:74controller.ManageMultiKeys controller/channel.go:1531;上游 api.jsonPOST /api/channel/multi_key/manage

GATEWAY-022 · DELETE /api/channel/ollama/delete

用途与归属:OllamaDeleteModel。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:处理器匿名请求字段:channel_id:int(条件必填看处理器), model_name:string(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:69controller.OllamaDeleteModel controller/channel.go:2151

GATEWAY-023 · POST /api/channel/ollama/pull

用途与归属:OllamaPullModel。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:处理器匿名请求字段:channel_id:int(条件必填看处理器), model_name:string(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:67controller.OllamaPullModel controller/channel.go:2006

GATEWAY-024 · POST /api/channel/ollama/pull/stream

用途与归属:OllamaPullModelStream。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:处理器匿名请求字段:channel_id:int(条件必填看处理器), model_name:string(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 error, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:68controller.OllamaPullModelStream controller/channel.go:2069

GATEWAY-025 · GET /api/channel/ollama/version/:id

用途与归属:OllamaVersion。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelSensitiveWrite。

请求:Path:id(必填;以实际路由名为准)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, success, version(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:70controller.OllamaVersion controller/channel.go:2214

GATEWAY-026 · GET /api/channel/ops

用途与归属:GetChannelOps。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 retry_times(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:44controller.GetChannelOps controller/channel.go:96

GATEWAY-027 · GET /api/channel/search

用途与归属:搜索渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:OpenAPI 参数:query.keyword:string; query.group:string; query.model:string。处理器读取:query.keyword, query.group, query.model, query.status, query.id_sort, query.sort_by, query.sort_order, query.tag_mode, query.type, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, items, message, success, total, type_counts(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:41controller.SearchChannels controller/channel.go:277;上游 api.jsonGET /api/channel/search

GATEWAY-028 · POST /api/channel/status/batch

用途与归属:BatchUpdateChannelStatus。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body 类型:controller.ChannelStatusBatchRequest controller/channel.go:957;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 count, data, message, status, success, total(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:52controller.BatchUpdateChannelStatus controller/channel.go:1186

GATEWAY-029 · PUT /api/channel/tag

用途与归属:编辑标签渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelWrite。

请求:Body 字段(application/json):tag:string [规范未列必填]; new_tag:string [规范未列必填]; priority:integer [规范未列必填]; weight:integer [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success, tag(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:57controller.EditTagChannels controller/channel.go:852;上游 api.jsonPUT /api/channel/tag

GATEWAY-030 · POST /api/channel/tag/disabled

用途与归属:禁用标签渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body 字段(application/json):tag:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success, tag(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:55controller.DisableTagChannels controller/channel.go:800;上游 api.jsonPOST /api/channel/tag/disabled

GATEWAY-031 · POST /api/channel/tag/enabled

用途与归属:启用标签渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body 字段(application/json):tag:string [规范未列必填]

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success, tag(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:56controller.EnableTagChannels controller/channel.go:826;上游 api.jsonPOST /api/channel/tag/enabled

GATEWAY-032 · GET /api/channel/tag/models

用途与归属:获取标签模型。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelRead。

请求:OpenAPI 参数:query.tag:string(必填)。处理器读取:query.tag。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:72controller.GetTagModels controller/channel.go:1390;上游 api.jsonGET /api/channel/tag/models

GATEWAY-033 · GET /api/channel/test

用途与归属:测试所有渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, status, success, task_id, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:默认读取可重试;但上游存在 GET 执行动作/签发凭据,必须按处理器确认。不得把方法名作为安全重试的唯一依据。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:46controller.TestAllChannels controller/channel-test.go:1131;上游 api.jsonGET /api/channel/test

GATEWAY-034 · GET /api/channel/test/:id

用途与归属:测试指定渠道。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id, query.model, query.endpoint_type, query.stream。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 error_code, message, success, time(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:默认读取可重试;但上游存在 GET 执行动作/签发凭据,必须按处理器确认。不得把方法名作为安全重试的唯一依据。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:47controller.TestChannel controller/channel-test.go:845;上游 api.jsonGET /api/channel/test/{id}

GATEWAY-035 · GET /api/channel/update_balance

用途与归属:更新所有渠道余额。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:默认读取可重试;但上游存在 GET 执行动作/签发凭据,必须按处理器确认。不得把方法名作为安全重试的唯一依据。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:48controller.UpdateAllChannelsBalance controller/channel-billing.go:599;上游 api.jsonGET /api/channel/update_balance

GATEWAY-036 · GET /api/channel/update_balance/:id

用途与归属:更新指定渠道余额。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:默认读取可重试;但上游存在 GET 执行动作/签发凭据,必须按处理器确认。不得把方法名作为安全重试的唯一依据。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/channel-router.go:49controller.UpdateChannelBalance controller/channel-billing.go:530;上游 api.jsonGET /api/channel/update_balance/{id}

GATEWAY-037 · POST /api/channel/upstream_updates/apply

用途与归属:ApplyChannelUpstreamModelUpdates。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelWrite。

请求:Body 类型:controller.applyChannelUpstreamModelUpdatesRequest controller/channel_upstream_update.go:70;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 added_models, data, id, ignored_models, message, models, remaining_models, remaining_remove_models, removed_models, settings, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:75controller.ApplyChannelUpstreamModelUpdates controller/channel_upstream_update.go:858

GATEWAY-038 · POST /api/channel/upstream_updates/apply_all

用途与归属:ApplyAllChannelUpstreamModelUpdates。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelWrite。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 added_models, count, data, failed_channel_ids, message, processed_channels, removed_models, results, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:76controller.ApplyAllChannelUpstreamModelUpdates controller/channel_upstream_update.go:1025

GATEWAY-039 · POST /api/channel/upstream_updates/detect

用途与归属:DetectChannelUpstreamModelUpdates。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body 类型:controller.applyChannelUpstreamModelUpdatesRequest controller/channel_upstream_update.go:70;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:77controller.DetectChannelUpstreamModelUpdates controller/channel_upstream_update.go:914

GATEWAY-040 · POST /api/channel/upstream_updates/detect_all

用途与归属:DetectAllChannelUpstreamModelUpdates。留在供应网关。

鉴权:Admin 员工身份;authz.ChannelOperate。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, status, success, task_id, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/channel-router.go:78controller.DetectAllChannelUpstreamModelUpdates controller/channel_upstream_update.go:1115

GATEWAY-041 · GET /api/deployments/

用途与归属:GetAllDeployments。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.status, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 items, page, page_size, status_counts, total(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:407controller.GetAllDeployments controller/deployment.go:206

GATEWAY-042 · POST /api/deployments/

用途与归属:CreateDeployment。留在供应网关。

鉴权:Admin 员工身份。

请求:Body 类型:ionet.DeploymentRequest pkg/ionet/types.go:35;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 deployment_id, message, status(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:415controller.CreateDeployment controller/deployment.go:494

GATEWAY-043 · DELETE /api/deployments/:id

用途与归属:DeleteDeployment。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 deployment_id, message, status(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:424controller.DeleteDeployment controller/deployment.go:469

GATEWAY-044 · GET /api/deployments/:id

用途与归属:GetDeployment。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 amount_paid, brand_name, completed_percent, compute_minutes_remaining, compute_minutes_served, container_config, cpu, created_at, deployment_name, description, gpu, gpus_per_container, hardware_id, hardware_name, id, instance_count, locations, memory, model_name, model_version, resource_config, status, total_containers, total_gpus, updated_at(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:417controller.GetDeployment controller/deployment.go:296

GATEWAY-045 · PUT /api/deployments/:id

用途与归属:UpdateDeployment。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。Body 类型:ionet.UpdateDeploymentRequest pkg/ionet/types.go:232;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 deployment_id, status(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:421controller.UpdateDeployment controller/deployment.go:400

GATEWAY-046 · GET /api/deployments/:id/containers

用途与归属:ListDeploymentContainers。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 brand_name, container_id, containers, created_at, device_id, events, gpus_per_container, hardware, message, public_url, status, time, total, uptime_percent(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:419controller.ListDeploymentContainers controller/deployment.go:703

GATEWAY-047 · GET /api/deployments/:id/containers/:container_id

用途与归属:GetContainerDetails。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id, container_id(必填;以实际路由名为准)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 brand_name, container_id, created_at, deployment_id, device_id, events, gpus_per_container, hardware, message, public_url, status, time, uptime_percent(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:420controller.GetContainerDetails controller/deployment.go:758

GATEWAY-048 · POST /api/deployments/:id/extend

用途与归属:ExtendDeployment。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。Body 类型:ionet.ExtendDurationRequest pkg/ionet/types.go:245;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:423controller.ExtendDeployment controller/deployment.go:430

GATEWAY-049 · GET /api/deployments/:id/logs

用途与归属:GetDeploymentLogs。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器读取:query.container_id, query.level, query.stream, query.cursor, query.limit, query.follow, query.start_time, query.end_time。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:418controller.GetDeploymentLogs controller/deployment.go:646

GATEWAY-050 · PUT /api/deployments/:id/name

用途与归属:UpdateDeploymentName。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。处理器匿名请求字段:name:string(绑定标记必填)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 id, message, name, status(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:422controller.UpdateDeploymentName controller/deployment.go:345

GATEWAY-051 · GET /api/deployments/available-replicas

用途与归属:GetAvailableReplicas。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.hardware_id, query.gpu_count。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:412controller.GetAvailableReplicas controller/deployment.go:564

GATEWAY-052 · GET /api/deployments/check-name

用途与归属:CheckClusterNameAvailability。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.name。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 available, name(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:414controller.CheckClusterNameAvailability controller/deployment.go:621

GATEWAY-053 · GET /api/deployments/hardware-types

用途与归属:GetHardwareTypes。留在供应网关。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 hardware_types, total, total_available(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:410controller.GetHardwareTypes controller/deployment.go:520

GATEWAY-054 · GET /api/deployments/locations

用途与归属:GetLocations。留在供应网关。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 locations, total(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:411controller.GetLocations controller/deployment.go:540

GATEWAY-055 · POST /api/deployments/price-estimation

用途与归属:GetPriceEstimation。留在供应网关。

鉴权:Admin 员工身份。

请求:Body 类型:ionet.PriceEstimationRequest pkg/ionet/types.go:186;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:413controller.GetPriceEstimation controller/deployment.go:600

GATEWAY-056 · GET /api/deployments/search

用途与归属:SearchDeployments。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.status, query.keyword, query.p, query.page_size。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 items, page, page_size, total(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:408controller.SearchDeployments controller/deployment.go:243

GATEWAY-057 · GET /api/deployments/settings

用途与归属:GetModelDeploymentSettings。留在供应网关。

鉴权:Admin 员工身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 can_connect, configured, enabled, provider(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:405controller.GetModelDeploymentSettings controller/deployment.go:28

GATEWAY-058 · POST /api/deployments/settings/test-connection

用途与归属:TestIoNetConnection。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器匿名请求字段:api_key:string(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 hardware_count, total_available(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:406controller.TestIoNetConnection controller/deployment.go:58

GATEWAY-059 · POST /api/deployments/test-connection

用途与归属:TestIoNetConnection。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器匿名请求字段:api_key:string(条件必填看处理器)。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 hardware_count, total_available(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:409controller.TestIoNetConnection controller/deployment.go:58

GATEWAY-060 · GET /api/log/channel_affinity_usage_cache

用途与归属:GetChannelAffinityUsageCacheStats。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.rule_name, query.using_group, query.key_fp。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:315controller.GetChannelAffinityUsageCacheStats controller/channel_affinity_cache.go:62

GATEWAY-061 · DELETE /api/option/channel_affinity_cache

用途与归属:ClearChannelAffinityCache。留在供应网关。

鉴权:Root 管理身份。

请求:处理器读取:query.all, query.rule_name。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, deleted, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:215controller.ClearChannelAffinityCache controller/channel_affinity_cache.go:20

GATEWAY-062 · GET /api/option/channel_affinity_cache

用途与归属:GetChannelAffinityCacheStats。留在供应网关。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:214controller.GetChannelAffinityCacheStats controller/channel_affinity_cache.go:11

GATEWAY-063 · GET /api/option/waffo-pancake/catalog

用途与归属:ListWaffoPancakeCatalog。留在供应网关。

鉴权:Root 管理身份。

请求:处理器读取:query.merchant_id, query.private_key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, message(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:217controller.ListWaffoPancakeCatalog controller/topup_waffo_pancake.go:221

GATEWAY-064 · POST /api/option/waffo-pancake/pair

用途与归属:CreateWaffoPancakePair。留在供应网关。

鉴权:Root 管理身份。

请求:Body 类型:controller.createWaffoPancakePairRequest controller/topup_waffo_pancake.go:117;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 data, error, message, product_id, product_name, store_id, store_name(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:218controller.CreateWaffoPancakePair controller/topup_waffo_pancake.go:171

GATEWAY-065 · GET /api/plugin/task

用途与归属:ListTaskPlugins。留在供应网关。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:254controller.ListTaskPlugins controller/task_plugin.go:152

GATEWAY-066 · POST /api/plugin/task

用途与归属:UploadTaskPlugin。留在供应网关。

鉴权:Root 管理身份。

请求:Body 类型:controller.taskPluginUploadRequest controller/task_plugin.go:39;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:255controller.UploadTaskPlugin controller/task_plugin.go:50

GATEWAY-067 · PUT /api/plugin/task

用途与归属:UploadTaskPlugin。留在供应网关。

鉴权:Root 管理身份。

请求:Body 类型:controller.taskPluginUploadRequest controller/task_plugin.go:39;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:256controller.UploadTaskPlugin controller/task_plugin.go:50

GATEWAY-068 · GET /api/plugin/task/:key

用途与归属:GetTaskPlugin。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key, query.version。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:260controller.GetTaskPlugin controller/task_plugin.go:341

GATEWAY-069 · POST /api/plugin/task/:key/activate

用途与归属:ActivateTaskPlugin。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key。Body 类型:controller.taskPluginActivateRequest controller/task_plugin.go:459;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:263controller.ActivateTaskPlugin controller/task_plugin.go:463

GATEWAY-070 · POST /api/plugin/task/:key/dryrun

用途与归属:DryRunTaskPlugin。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key。Body 类型:controller.taskPluginDryRunRequest controller/task_plugin.go:372;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:265controller.DryRunTaskPlugin controller/task_plugin.go:378

GATEWAY-071 · GET /api/plugin/task/:key/icon

用途与归属:GetTaskPluginIcon。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key, query.version。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:261controller.GetTaskPluginIcon controller/task_plugin.go:313

GATEWAY-072 · POST /api/plugin/task/:key/status

用途与归属:SetTaskPluginStatus。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key, query.cascade, query.force。Body 类型:controller.taskPluginStatusRequest controller/task_plugin.go:500;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 channels, data, disabled_channels, in_flight_count, message, plugin_enabled, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:264controller.SetTaskPluginStatus controller/task_plugin.go:504

GATEWAY-073 · GET /api/plugin/task/:key/versions

用途与归属:GetTaskPluginVersions。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:262controller.GetTaskPluginVersions controller/task_plugin.go:110

GATEWAY-074 · DELETE /api/plugin/task/:key/versions/:version

用途与归属:DeleteTaskPluginVersion。留在供应网关。

鉴权:Root 管理身份。

请求:Path:key, version(必填;以实际路由名为准)。处理器读取:path.key, path.version, query.force。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 channels, data, in_flight_count, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:266controller.DeleteTaskPluginVersion controller/task_plugin.go:420

GATEWAY-075 · GET /api/plugin/task/marketplace/sources

用途与归属:GetTaskPluginMarketplaceSources。留在供应网关。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:258controller.GetTaskPluginMarketplaceSources controller/task_plugin.go:594

GATEWAY-076 · PUT /api/plugin/task/marketplace/sources

用途与归属:UpdateTaskPluginMarketplaceSources。留在供应网关。

鉴权:Root 管理身份。

请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:259controller.UpdateTaskPluginMarketplaceSources controller/task_plugin.go:598

GATEWAY-077 · GET /api/plugin/task/runtime/status

用途与归属:GetTaskPluginRuntime。留在供应网关。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:257controller.GetTaskPluginRuntime controller/task_plugin.go:256

GATEWAY-078 · GET /api/prefill_group/

用途与归属:获取预填分组。留在供应网关。

鉴权:Admin 员工身份。

请求:处理器读取:query.type。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:356controller.GetPrefillGroups controller/prefill_group.go:13;上游 api.jsonGET /api/prefill_group/

GATEWAY-079 · POST /api/prefill_group/

用途与归属:创建预填分组。留在供应网关。

鉴权:Admin 员工身份。

请求:Body 类型:model.PrefillGroup model/prefill_group.go:78;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:357controller.CreatePrefillGroup controller/prefill_group.go:24;上游 api.jsonPOST /api/prefill_group/

GATEWAY-080 · PUT /api/prefill_group/

用途与归属:更新预填分组。留在供应网关。

鉴权:Admin 员工身份。

请求:Body 类型:model.PrefillGroup model/prefill_group.go:78;允许写入字段按处理器白名单,不把整个数据库结构直接开放。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:358controller.UpdatePrefillGroup controller/prefill_group.go:51;上游 api.jsonPUT /api/prefill_group/

GATEWAY-081 · DELETE /api/prefill_group/:id

用途与归属:删除预填分组。留在供应网关。

鉴权:Admin 员工身份。

请求:Path:id(必填;以实际路由名为准)。OpenAPI 参数:path.id:integer(必填)。处理器读取:path.id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);处理器使用 common.ApiSuccess 包络。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:359controller.DeletePrefillGroup controller/prefill_group.go:78;上游 api.jsonDELETE /api/prefill_group/{id}

GATEWAY-082 · GET /api/ratio_sync/channels

用途与归属:获取可同步渠道。留在供应网关。

鉴权:Root 管理身份。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, message, success(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:248controller.GetSyncableChannels controller/ratio_sync.go:1107;上游 api.jsonGET /api/ratio_sync/channels

GATEWAY-083 · POST /api/ratio_sync/fetch

用途与归属:获取上游倍率。留在供应网关。

鉴权:Root 管理身份。

请求:处理器匿名请求字段:success:bool(条件必填看处理器), data:json.RawMessage(条件必填看处理器), message:string(条件必填看处理器)。

返回200 成功(上游未声明响应 Schema);代码 JSON/映射中观察到 data, differences, message, prices, success, test_results(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:沿用原行为,不擅自要求所有旧接口新增 Idempotency-Key;创建/财务动作必须定义重复点击和响应丢失结果,客户端不得无条件自动重试。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:RESPONSE-SCHEMA-MISSING:上游响应未定义结构;以处理器和兼容用例补齐。

来源router/api-router.go:249controller.FetchUpstreamRatios controller/ratio_sync.go:211;上游 api.jsonPOST /api/ratio_sync/fetch

GATEWAY-084 · GET /api/task_plugin_options

用途与归属:GetTaskPluginOptions。留在供应网关。

鉴权:Admin 员工身份;authz.TaskPluginBind。

请求:自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。

返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;处理器使用 common.ApiSuccess 包络;代码 JSON/映射中观察到 baseUrl, channelTypes, description, hasIcon, icon, key, models, name, sortPriority, usageProfiles, usageSchema, website(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。

业务与副作用:只在独立供应网关提供;不加入 OceanWay 客户公开 API。网关内部员工/服务身份和敏感权限沿用,Core/Edge 不直接改网关数据库;需要运营入口时只做受控链接或服务适配。

幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。

验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。

迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。

来源router/api-router.go:268controller.GetTaskPluginOptions controller/task_plugin.go:634

On this page

仅网关维护的接口GATEWAY-001 · GET /api/channel/GATEWAY-002 · POST /api/channel/GATEWAY-003 · PUT /api/channel/GATEWAY-004 · DELETE /api/channel/:idGATEWAY-005 · GET /api/channel/:idGATEWAY-006 · POST /api/channel/:id/codex/refreshGATEWAY-007 · GET /api/channel/:id/codex/usageGATEWAY-008 · POST /api/channel/:id/codex/usage/resetGATEWAY-009 · GET /api/channel/:id/codex/usage/reset-creditsGATEWAY-010 · POST /api/channel/:id/keyGATEWAY-011 · POST /api/channel/:id/statusGATEWAY-012 · POST /api/channel/batchGATEWAY-013 · POST /api/channel/batch/tagGATEWAY-014 · POST /api/channel/copy/:idGATEWAY-015 · DELETE /api/channel/disabledGATEWAY-016 · POST /api/channel/fetch_modelsGATEWAY-017 · GET /api/channel/fetch_models/:idGATEWAY-018 · POST /api/channel/fixGATEWAY-019 · GET /api/channel/modelsGATEWAY-020 · GET /api/channel/models_enabledGATEWAY-021 · POST /api/channel/multi_key/manageGATEWAY-022 · DELETE /api/channel/ollama/deleteGATEWAY-023 · POST /api/channel/ollama/pullGATEWAY-024 · POST /api/channel/ollama/pull/streamGATEWAY-025 · GET /api/channel/ollama/version/:idGATEWAY-026 · GET /api/channel/opsGATEWAY-027 · GET /api/channel/searchGATEWAY-028 · POST /api/channel/status/batchGATEWAY-029 · PUT /api/channel/tagGATEWAY-030 · POST /api/channel/tag/disabledGATEWAY-031 · POST /api/channel/tag/enabledGATEWAY-032 · GET /api/channel/tag/modelsGATEWAY-033 · GET /api/channel/testGATEWAY-034 · GET /api/channel/test/:idGATEWAY-035 · GET /api/channel/update_balanceGATEWAY-036 · GET /api/channel/update_balance/:idGATEWAY-037 · POST /api/channel/upstream_updates/applyGATEWAY-038 · POST /api/channel/upstream_updates/apply_allGATEWAY-039 · POST /api/channel/upstream_updates/detectGATEWAY-040 · POST /api/channel/upstream_updates/detect_allGATEWAY-041 · GET /api/deployments/GATEWAY-042 · POST /api/deployments/GATEWAY-043 · DELETE /api/deployments/:idGATEWAY-044 · GET /api/deployments/:idGATEWAY-045 · PUT /api/deployments/:idGATEWAY-046 · GET /api/deployments/:id/containersGATEWAY-047 · GET /api/deployments/:id/containers/:container_idGATEWAY-048 · POST /api/deployments/:id/extendGATEWAY-049 · GET /api/deployments/:id/logsGATEWAY-050 · PUT /api/deployments/:id/nameGATEWAY-051 · GET /api/deployments/available-replicasGATEWAY-052 · GET /api/deployments/check-nameGATEWAY-053 · GET /api/deployments/hardware-typesGATEWAY-054 · GET /api/deployments/locationsGATEWAY-055 · POST /api/deployments/price-estimationGATEWAY-056 · GET /api/deployments/searchGATEWAY-057 · GET /api/deployments/settingsGATEWAY-058 · POST /api/deployments/settings/test-connectionGATEWAY-059 · POST /api/deployments/test-connectionGATEWAY-060 · GET /api/log/channel_affinity_usage_cacheGATEWAY-061 · DELETE /api/option/channel_affinity_cacheGATEWAY-062 · GET /api/option/channel_affinity_cacheGATEWAY-063 · GET /api/option/waffo-pancake/catalogGATEWAY-064 · POST /api/option/waffo-pancake/pairGATEWAY-065 · GET /api/plugin/taskGATEWAY-066 · POST /api/plugin/taskGATEWAY-067 · PUT /api/plugin/taskGATEWAY-068 · GET /api/plugin/task/:keyGATEWAY-069 · POST /api/plugin/task/:key/activateGATEWAY-070 · POST /api/plugin/task/:key/dryrunGATEWAY-071 · GET /api/plugin/task/:key/iconGATEWAY-072 · POST /api/plugin/task/:key/statusGATEWAY-073 · GET /api/plugin/task/:key/versionsGATEWAY-074 · DELETE /api/plugin/task/:key/versions/:versionGATEWAY-075 · GET /api/plugin/task/marketplace/sourcesGATEWAY-076 · PUT /api/plugin/task/marketplace/sourcesGATEWAY-077 · GET /api/plugin/task/runtime/statusGATEWAY-078 · GET /api/prefill_group/GATEWAY-079 · POST /api/prefill_group/GATEWAY-080 · PUT /api/prefill_group/GATEWAY-081 · DELETE /api/prefill_group/:idGATEWAY-082 · GET /api/ratio_sync/channelsGATEWAY-083 · POST /api/ratio_sync/fetchGATEWAY-084 · GET /api/task_plugin_options