# 角色管理

> 模块标识：role  |  接口数量：7

## 1. 获取角色列表
**方法**：	GET

**路径**：				/api/roles

**功能说明**：
分页获取角色列表

### 请求参数
```json
{
  "query": [
    {
      "name": "pageNum",
      "type": "number",
      "required": false,
      "description": "页码，默认1"
    },
    {
      "name": "pageSize",
      "type": "number",
      "required": false,
      "description": "每页数量，默认10"
    },
    {
      "name": "name",
      "type": "string",
      "required": false,
      "description": "角色名称关键词"
    },
    {
      "name": "code",
      "type": "string",
      "required": false,
      "description": "角色编码"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "list": [
        {
          "id": 1,
          "code": "ROLE0001",
          "name": "系统管理员",
          "status": 1,
          "permissions": [
            "PERM0001"
          ],
          "resources": [
            "RES0001"
          ]
        }
      ],
      "total": 100,
      "pageNum": 1,
      "pageSize": 10
    }
  }
}
```


## 2. 获取角色详情
**方法**：	GET

**路径**：				/api/roles/{id}

**功能说明**：
根据角色ID获取角色详细信息

### 请求参数
```json
{
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "角色ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "获取成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4040",
    "message": "角色不存在",
    "data": null
  }
}
```


## 3. 创建角色
**方法**：	POST

**路径**：				/api/roles

**功能说明**：
创建新的角色

### 请求参数
```json
{
  "body": {
    "name": "string｜必填，角色名称",
    "code": "string｜必填，角色编码，唯一",
    "status": "number｜可选，状态：1-启用，0-禁用"
  }
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "创建角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "创建角色失败",
    "data": null
  }
}
```


## 4. 更新角色
**方法**：	PUT

**路径**：				/api/roles/{id}

**功能说明**：
更新指定角色的信息

### 请求参数
```json
{
  "body": {
    "name": "string｜必填，角色名称",
    "code": "string｜必填，角色编码，唯一",
    "status": "number｜可选，状态：1-启用，0-禁用"
  },
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "角色ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}
```


## 5. 删除角色
**方法**：	DELETE

**路径**：				/api/roles/{id}

**功能说明**：
删除指定的角色

### 请求参数
```json
{
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "角色ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "删除角色成功",
    "data": {
      "result": true
    }
  },
  "failure": {
    "code": "4000",
    "message": "删除角色失败",
    "data": null
  }
}
```


## 6. 绑定角色权限
**方法**：	PUT

**路径**：				/api/roles/{id}/permissions

**功能说明**：
为指定角色绑定权限

### 请求参数
```json
{
  "body": {
    "name": "string｜必填，角色名称",
    "code": "string｜必填，角色编码，唯一",
    "status": "number｜可选，状态：1-启用，0-禁用"
  },
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "角色ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}
```


## 7. 绑定角色资源
**方法**：	PUT

**路径**：				/api/roles/{id}/resources

**功能说明**：
为指定角色绑定资源

### 请求参数
```json
{
  "body": {
    "name": "string｜必填，角色名称",
    "code": "string｜必填，角色编码，唯一",
    "status": "number｜可选，状态：1-启用，0-禁用"
  },
  "path": [
    {
      "name": "id",
      "type": "string",
      "required": true,
      "description": "角色ID"
    }
  ]
}
```

### 响应示例
```json
{
  "success": {
    "code": "0000",
    "message": "更新角色成功",
    "data": {
      "id": 1,
      "code": "ROLE0001",
      "name": "系统管理员",
      "status": 1,
      "permissions": [
        "PERM0001"
      ],
      "resources": [
        "RES0001"
      ]
    }
  },
  "failure": {
    "code": "4000",
    "message": "更新角色失败",
    "data": null
  }
}
```

