1
0
Files
nex/openspec/changes/refactor-conversion-engine/specs/provider-management/spec.md

2.7 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 创建供应商配置

网关 SHALL 允许通过管理 API 创建新的供应商配置。

Scenario: 使用有效数据创建供应商

  • WHEN/api/providers 发送 POST 请求携带有效的供应商数据id, name, api_key, base_url, protocol
  • THEN 网关 SHALL 在数据库中创建新的供应商记录
  • THEN 网关 SHALL 返回创建的供应商,状态码为 201
  • THEN 供应商 SHALL 默认启用
  • THEN protocol 字段 SHALL 默认为 "openai"

Scenario: 使用重复 ID 创建供应商

  • WHEN/api/providers 发送 POST 请求,携带已存在的 ID
  • THEN 网关 SHALL 返回错误,状态码为 409 (Conflict)

Scenario: 创建供应商时缺少必需字段

  • WHEN/api/providers 发送 POST 请求缺少必需字段id, name, api_key 或 base_url
  • THEN 网关 SHALL 返回错误,状态码为 400 (Bad Request)
  • THEN 错误 SHALL 指示缺少哪些字段

Requirement: 列出所有供应商

网关 SHALL 允许获取所有供应商配置。

Scenario: 成功列出供应商

  • WHEN/api/providers 发送 GET 请求
  • THEN 网关 SHALL 返回所有供应商的列表
  • THEN 每个供应商 SHALL 包含 id, name, api_key已掩码, base_url, protocol, enabled, created_at, updated_at
  • THEN api_key SHALL 被掩码(仅显示最后 4 个字符)

Requirement: 获取特定供应商

网关 SHALL 允许通过 ID 获取特定供应商。

Scenario: 获取存在的供应商

  • WHEN/api/providers/:id 发送 GET 请求,携带有效的供应商 ID
  • THEN 网关 SHALL 返回供应商详情
  • THEN SHALL 包含 protocol 字段
  • THEN api_key SHALL 被掩码

Scenario: 获取不存在的供应商

  • WHEN/api/providers/:id 发送 GET 请求,携带不存在的 ID
  • THEN 网关 SHALL 返回错误,状态码为 404 (Not Found)

Requirement: 更新供应商配置

网关 SHALL 允许更新现有供应商配置。

Scenario: 使用有效数据更新供应商

  • WHEN/api/providers/:id 发送 PUT 请求,携带有效的供应商数据
  • THEN 网关 SHALL 更新数据库中的供应商记录
  • THEN 网关 SHALL 返回更新后的供应商
  • THEN 更新 SHALL 支持修改 protocol 字段

Requirement: 删除供应商配置

网关 SHALL 允许删除供应商配置。

Scenario: 删除存在的供应商

  • WHEN/api/providers/:id 发送 DELETE 请求,携带有效的供应商 ID
  • THEN 网关 SHALL 删除供应商记录
  • THEN 网关 SHALL 删除所有关联的模型CASCADE
  • THEN 网关 SHALL 返回状态码 204 (No Content)