36 lines
1.5 KiB
Markdown
36 lines
1.5 KiB
Markdown
## 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 指示缺少哪些字段
|
||
|
||
#### Scenario: 创建供应商时 ID 包含非法字符
|
||
|
||
- **WHEN** 向 `/api/providers` 发送 POST 请求,id 包含非 `[a-zA-Z0-9_]` 字符
|
||
- **THEN** 网关 SHALL 返回错误,状态码为 400 (Bad Request)
|
||
- **THEN** 错误 SHALL 指示 id 仅允许字母、数字、下划线
|
||
|
||
#### Scenario: 创建供应商时 ID 过长
|
||
|
||
- **WHEN** 向 `/api/providers` 发送 POST 请求,id 长度超过 64
|
||
- **THEN** 网关 SHALL 返回错误,状态码为 400 (Bad Request)
|