datai/docs/archive/api-docs/system/2026-01-26-002-08-05-api-删除语言.md

102 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API 文档:删除语言接口
## 元数据
- **需求编号**2026-01-26-002-08-05
- **创建时间**2026-01-26
- **创建人**SSOT 架构师
- **父需求**2026-01-26-002-08-语言管理功能
- **状态**:已完成
## 功能概述
删除一种或多种语言。
## 接口信息
### 基本信息
- **接口名称**:删除语言
- **接口功能**:删除已存在的语言(支持批量删除)
- **请求方式**DELETE
- **请求路径**`/system/language/{ids}`
- **权限要求**`system:language:remove`
### 请求参数
| 参数名 | 类型 | 必选 | 说明 | 示例值 |
|--------|------|------|------|--------|
| ids | Long[] | 是 | 语言 ID 数组(路径参数) | 1,2,3 |
### 响应参数
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | Integer | 状态码200 成功) |
| msg | String | 提示信息 |
### 请求示例
```http
DELETE /system/language/1,2,3
```
### 响应示例
```json
{
"code": 200,
"msg": "删除成功"
}
```
## 错误码
| 错误码 | 说明 | 处理建议 |
|--------|------|----------|
| 400 | 请求参数错误 | 检查请求参数是否正确 |
| 401 | 未登录或登录已过期 | 重新登录 |
| 403 | 无权限访问 | 联系管理员分配权限 |
| 404 | 语言不存在 | 检查语言 ID 是否正确 |
| 409 | 不能删除默认语言 | 先设置其他语言为默认语言 |
| 500 | 服务器内部错误 | 联系技术支持 |
## 业务规则
1. **删除规则**
- 支持批量删除多个语言
- 必须提供至少一个有效的语言 ID
2. **数据权限**
- 需要登录用户
- 需要具备 `system:language:remove` 权限
3. **删除限制**
- 不能删除默认语言
- 不能删除正在被用户使用的语言
- 不能删除系统保留的语言(如 zh-CN、en-US
4. **删除后处理**
- 清除语言列表缓存
- 清除语言详情缓存
- 删除对应的国际化资源文件
- 记录操作日志
5. **级联处理**
- 删除语言后,使用该语言的用户会自动切换到系统默认语言
- 删除语言后,该语言的翻译资源会被删除
## 缓存策略
- **缓存类型**Redis
- **缓存更新**
- 删除语言后清除该语言的缓存
- 清除所有语言列表缓存
- 清除缓存键模式:`system:language:*`
## 注意事项
1. 删除语言是不可逆操作,请谨慎操作
2. 删除语言前,建议先确认是否有用户正在使用该语言
3. 删除语言后,该语言的翻译资源也会被删除,无法恢复
4. 删除默认语言会失败,需要先设置其他语言为默认语言
5. 建议在删除语言前,先停用该语言,观察一段时间后再删除
6. 批量删除时,如果其中一个语言删除失败,整个操作会回滚