Edge:图像、音频、视频与任务接口
API 逐项需求、源码归属、字段与验收条件
当前固定源码下本组共 18 项方法 + 路径。下列为接口需求 v0.1,Owner 为 API Edge,计划阶段为 媒体阶段;均未宣称 OceanWay 已运行。原路径/字段默认沿用,变化须进入差异台账。
每项适用统一接口需求规则,并列出上游字段声明、控制器观察与具体补差。OpenAPI 没列必填不表示运行时可缺省;观察到的 JSON key 也不等于可写入字段。下载完整接口台账及上游管理规范、模型规范可查看完整嵌套 Schema。
EDGE-MEDIA-001 · POST /v1/audio/speech
用途与归属:文本转语音。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(application/json):model:string [规范声明必填]; input:string [规范声明必填] maxLength=4096; voice:string [规范声明必填] enum=["alloy", "echo", "fable", "onyx", "nova", "shimmer"]; response_format:string [规范未列必填] enum=["mp3", "opus", "aac", "flac", "wav", "pcm"], default="mp3"; speed:number [规范未列必填] default=1, minimum=0.25, maximum=4。
返回:200 成功生成音频;内容类型 audio/mpeg;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/relay-router.go:135;controller.Relay controller/relay.go:73;上游 relay.json 中 POST /v1/audio/speech。
EDGE-MEDIA-002 · POST /v1/audio/transcriptions
用途与归属:音频转录。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(multipart/form-data):file:string [规范声明必填] format="binary"; model:string [规范声明必填]; language:string [规范未列必填]; prompt:string [规范未列必填]; response_format:string [规范未列必填] enum=["json", "text", "srt", "verbose_json", "vtt"], default="json"; temperature:number [规范未列必填]; timestamp_granularities:array [规范未列必填]。
返回:200 成功转录;内容类型 application/json;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:text:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/relay-router.go:129;controller.Relay controller/relay.go:73;上游 relay.json 中 POST /v1/audio/transcriptions。
EDGE-MEDIA-003 · POST /v1/audio/translations
用途与归属:音频翻译。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(multipart/form-data):file:string [规范声明必填] format="binary"; model:string [规范声明必填]; prompt:string [规范未列必填]; response_format:string [规范未列必填]; temperature:number [规范未列必填]。
返回:200 成功翻译;内容类型 application/json;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:text:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/relay-router.go:132;controller.Relay controller/relay.go:73;上游 relay.json 中 POST /v1/audio/translations。
EDGE-MEDIA-004 · POST /v1/edits
用途与归属:Relay。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/relay-router.go:113;controller.Relay controller/relay.go:73。
EDGE-MEDIA-005 · POST /v1/images/edits
用途与归属:编辑图像(qwen-image-edit)。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(application/json):model:string [规范声明必填]; input:object [规范声明必填]; input.messages:array [规范声明必填]; input.messages[].role:string [规范未列必填]; input.messages[].content:array [规范未列必填]; input.messages[].content[].image:string [规范未列必填]; input.messages[].content[].text:string [规范未列必填]; parameters:object [规范未列必填]; parameters.n:integer [规范未列必填]; parameters.negative_prompt:string [规范未列必填]; parameters.prompt_extend:boolean [规范未列必填]; parameters.watermark:boolean [规范未列必填]; parameters.size:string [规范未列必填]。
返回:200 成功生成图像;内容类型 application/json;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:created:integer [规范未列必填]; data:array [规范未列必填]; data[].url:string [规范未列必填]; data[].b64_json:string [规范未列必填]; data[].revised_prompt:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/relay-router.go:119;controller.Relay controller/relay.go:73;上游 relay.json 中 POST /v1/images/edits。
EDGE-MEDIA-006 · POST /v1/images/generations
用途与归属:生成图像(qwen-image)。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(application/json):model:string [规范声明必填]; input:object [规范声明必填]; input.messages:array [规范声明必填]; input.messages[].role:string [规范未列必填]; input.messages[].content:array [规范未列必填]; input.messages[].content[].text:string [规范未列必填]; parameters:object [规范未列必填]; parameters.negative_prompt:string [规范未列必填]; parameters.prompt_extend:boolean [规范未列必填]; parameters.watermark:boolean [规范未列必填]; parameters.size:string [规范未列必填]。
返回:200 成功生成图像;内容类型 application/json;代码 JSON/映射中观察到 error, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:created:integer [规范未列必填]; data:array [规范未列必填]; data[].url:string [规范未列必填]; data[].b64_json:string [规范未列必填]; data[].revised_prompt:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/relay-router.go:116;controller.Relay controller/relay.go:73;上游 relay.json 中 POST /v1/images/generations。
EDGE-MEDIA-007 · GET /v1/tasks/:key
用途与归属:GetTask。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构;代码 JSON/映射中观察到 created_at, fail_reason, finished_at, platform, progress, status, task_id(仅为字面键观察,含分支/内部映射,不等同完整响应契约)。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/task-router.go:24;controller.GetTask controller/task.go:37。
EDGE-MEDIA-008 · POST /v1/tasks/:key
用途与归属:RelayTask。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:key(必填;以实际路由名为准)。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/task-router.go:18;controller.RelayTask controller/relay.go:553。
EDGE-MEDIA-009 · GET /v1/tasks/:key/artifacts
用途与归属:GetTaskArtifacts。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:key(必填;以实际路由名为准)。处理器读取:path.key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/task-router.go:25;controller.GetTaskArtifacts controller/task.go:66。
EDGE-MEDIA-010 · GET /v1/tasks/:key/artifacts/:artifact_key/content
用途与归属:TaskArtifactContent。优先沿用,迁入/适配后验收。
鉴权:模型 Key 或限定任务产物访问凭据。
请求:Path:key, artifact_key(必填;以实际路由名为准)。处理器读取:path.key, path.artifact_key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/task-router.go:34;controller.TaskArtifactContent controller/task.go:279。
EDGE-MEDIA-011 · HEAD /v1/tasks/:key/artifacts/:artifact_key/content
用途与归属:TaskArtifactContent。优先沿用,迁入/适配后验收。
鉴权:模型 Key 或限定任务产物访问凭据。
请求:Path:key, artifact_key(必填;以实际路由名为准)。处理器读取:path.key, path.artifact_key。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/task-router.go:35;controller.TaskArtifactContent controller/task.go:279。
EDGE-MEDIA-012 · POST /v1/video/generations
用途与归属:创建视频生成任务。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(application/json):model:string [规范未列必填]; prompt:string [规范未列必填]; image:string [规范未列必填]; duration:number [规范未列必填]; width:integer [规范未列必填]; height:integer [规范未列必填]; fps:integer [规范未列必填]; seed:integer [规范未列必填]; n:integer [规范未列必填]; response_format:string [规范未列必填]; user:string [规范未列必填]; metadata:object [规范未列必填]。
返回:200 成功创建视频生成任务;内容类型 application/json;400 请求参数错误;内容类型 application/json;代码 JSON/映射中观察到 code, error, message, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:task_id:string [规范未列必填]; status:string [规范未列必填];400 application/json 字段:error:object [规范未列必填]; error.message:string [规范未列必填]; error.type:string [规范未列必填]; error.param:string [规范未列必填]; error.code:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/video-router.go:15;controller.RelayTaskPluginEndpoint controller/relay.go:508;上游 relay.json 中 POST /v1/video/generations。
EDGE-MEDIA-013 · GET /v1/video/generations/:task_id
用途与归属:获取视频生成任务状态。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:task_id(必填;以实际路由名为准)。OpenAPI 参数:path.task_id:string(必填)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:200 成功获取任务状态;内容类型 application/json;404 任务不存在;内容类型 application/json;200 application/json 字段:task_id:string [规范未列必填]; status:string [规范未列必填] enum=["queued", "in_progress", "completed", "failed"]; url:string [规范未列必填]; format:string [规范未列必填]; metadata:object [规范未列必填]; metadata.duration:number [规范未列必填]; metadata.fps:integer [规范未列必填]; metadata.width:integer [规范未列必填]; metadata.height:integer [规范未列必填]; metadata.seed:integer [规范未列必填]; error:object [规范未列必填]; error.code:integer [规范未列必填]; error.message:string [规范未列必填];404 application/json 字段:error:object [规范未列必填]; error.message:string [规范未列必填]; error.type:string [规范未列必填]; error.param:string [规范未列必填]; error.code:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:router/video-router.go:30;controller.RelayTaskFetch controller/relay.go:532;上游 relay.json 中 GET /v1/video/generations/{task_id}。
EDGE-MEDIA-014 · POST /v1/videos
用途与归属:创建视频 。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Body 字段(multipart/form-data):model:string [规范未列必填]; prompt:string [规范未列必填]; seconds:string [规范未列必填]; input_reference:string [规范未列必填] format="binary"。
返回:200 成功创建视频任务;内容类型 application/json;400 请求参数错误;内容类型 application/json;代码 JSON/映射中观察到 code, error, message, type(仅为字面键观察,含分支/内部映射,不等同完整响应契约);200 application/json 字段:id:string [规范声明必填]; object:string [规范声明必填]; model:string [规范声明必填]; status:string [规范声明必填]; progress:integer [规范声明必填]; created_at:integer [规范声明必填]; seconds:string [规范声明必填]; completed_at:integer [规范未列必填]; expires_at:integer [规范未列必填]; size:string [规范未列必填]; error:object [规范未列必填]; error.message:string [规范未列必填]; error.code:string [规范未列必填]; metadata:object [规范未列必填];400 application/json 字段:error:object [规范未列必填]; error.message:string [规范未列必填]; error.type:string [规范未列必填]; error.param:string [规范未列必填]; error.code:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:pkg/jsplugin/routing.go:87;controller.RelayTaskPluginEndpoint controller/relay.go:508;controller.RelayTask controller/relay.go:553;上游 relay.json 中 POST /v1/videos。
EDGE-MEDIA-015 · GET /v1/videos/:task_id
用途与归属:获取视频任务状态 。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:task_id(必填;以实际路由名为准)。OpenAPI 参数:path.task_id:string(必填)。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:200 成功获取视频任务状态;内容类型 application/json;404 任务不存在;内容类型 application/json;200 application/json 字段:id:string [规范声明必填]; object:string [规范声明必填]; model:string [规范声明必填]; status:string [规范声明必填]; progress:integer [规范声明必填]; created_at:integer [规范声明必填]; seconds:string [规范声明必填];404 application/json 字段:error:object [规范未列必填]; error.message:string [规范未列必填]; error.type:string [规范未列必填]; error.param:string [规范未列必填]; error.code:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:pkg/jsplugin/routing.go:88;controller.RelayTaskFetch controller/relay.go:532;上游 relay.json 中 GET /v1/videos/{task_id}。
EDGE-MEDIA-016 · GET /v1/videos/:task_id/content
用途与归属:获取视频内容。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:task_id(必填;以实际路由名为准)。OpenAPI 参数:path.task_id:string(必填)。处理器读取:path.task_id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:200 成功获取视频内容;内容类型 video/mp4;404 视频不存在或未完成;内容类型 application/json;404 application/json 字段:error:object [规范未列必填]; error.message:string [规范未列必填]; error.type:string [规范未列必填]; error.param:string [规范未列必填]; error.code:string [规范未列必填]。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
来源:pkg/jsplugin/routing.go:89;controller.VideoProxy controller/video_proxy.go:62;上游 relay.json 中 GET /v1/videos/{task_id}/content。
EDGE-MEDIA-017 · HEAD /v1/videos/:task_id/content
用途与归属:VideoProxy。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:task_id(必填;以实际路由名为准)。处理器读取:path.task_id。自动提取未发现请求体字段;是否接受 Body 及约束仍以处理器为准。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:读取可有界重试,不新建调用或扣款;结果为空、权限失败与查询未知分开。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:pkg/jsplugin/routing.go:89;controller.VideoProxy controller/video_proxy.go:62。
EDGE-MEDIA-018 · POST /v1/videos/:video_id/remix
用途与归属:RelayTask。优先沿用,迁入/适配后验收。
鉴权:模型 API Key(协议 Header 与兼容形式沿用)。
请求:Path:video_id(必填;以实际路由名为准)。Body/表单由下方处理器定义;上游未提供完整 Schema,本项要求迁入时补出字段白名单、必填、类型、默认和限制,缺失不作为“任意 JSON”开放。
返回:上游 OpenAPI 无本项响应规范;按处理器返回值补齐成功、拒绝和错误结构。
业务与副作用:提交、执行、查询、取消意图、结果访问和结算分别定义。JSON/文件上传、大小和产物访问按协议;Core 持久归属与费用,网关负责供应执行。未知提交先查原任务,不能直接重复收费生成。
幂等、重试与异常:已有幂等语义沿用;没有时不能宣称自动去重。Core 操作 ID 绑定账户与请求摘要;结果不明先查询/核对,供应侧重试归网关。 保留原 HTTP 状态、业务 success/message 或模型 error 包络,不将所有失败改成同一状态。区分参数、身份、权限、余额、限流、上游与执行未知;敏感栈和供应凭据不返回客户。
验收需求:成功与空态;缺失/非法字段;未登录/跨账户/无权限;限流;资源不存在;重试与状态冲突;数据库提交后响应丢失(写操作);返回字段与既有协议兼容。
迁入差异:OPENAPI-MISSING:源码已注册,上游 OpenAPI 无匹配操作。
来源:router/video-router.go:31;controller.RelayTask controller/relay.go:553。