通过或拒绝一条席位申请,并可记录审批意见。当前实现只接受 approve 和 reject,要求应用的人员范围为全部用户;响应返回处理后的申请状态。
所需权限
| 所需权限 | 资源 | Scope | 资源服务 |
|---|
| 用户与席位审批执行(执行) | user-approvals | admin.v1.user-approvals.execute | qwenwork-biz-service |
POST /api/openapi/v1/seat-requests/{requestId}/decision
认证与请求头
使用应用 API Key 调用。当前接口校验上方独立 Scope;读取、管理与执行权限互不包含。
| 名称 | 位置 | 类型 | 必填 | 说明 | 示例 |
|---|
| Authorization | header | string | 是 | 应用 API Key,使用 Bearer 方式传递。 | Bearer qwk_\\* |
| X-Request-Id | header | string | 否 | 可选的调用追踪标识;未传入时由服务端生成。 | req-20260831-001 |
请求参数
| 名称 | 位置 | 类型 | 必填 | 说明 | 示例 |
|---|
| requestId | path | string · uuid | 必填 | 需要操作的申请标识。 | "<uuid>" |
| Idempotency-Key | header | string | 必填 | 本次写操作的幂等键。同一操作重试时复用相同键和请求内容,避免重复处理。 | "<string>" |
| decision | body | string | 必填 | 加入申请支持 approve(通过)、approve_with_seat(通过并分配席位)和 reject(拒绝);席位申请只支持 approve 和 reject。 | "approve" |
| review_reason | body | string | 否 | 席位申请的审批意见;加入申请的当前处理逻辑不保存此字段。 最多字符数:2000。 | "<string>" |
请求示例
将 <BASE_URL> 替换为企业部署的千问办公 API 服务地址,并填写实际参数。示例中的占位值不能直接用于请求。
curl --request POST --url '<BASE_URL>/api/openapi/v1/seat-requests/<requestId>/decision' --header 'Authorization: Bearer <API_KEY>' --header 'Idempotency-Key: <UNIQUE_REQUEST_ID>' --header 'Content-Type: application/json' --data '{ "decision": "approve", "review_reason": "<string>"}'
响应
200 请求成功,返回当前或更新后的数据。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|
| request_id | string | 是 | 本次处理的申请标识。 | "<string>" |
| status | string | 是 | 此记录当前所处的状态。 | "<string>" |
{
"request_id": "<string>",
"status": "<string>"
}
default 请求失败,返回错误码和错误详情。
| 名称 | 类型 | 必填 | 说明 | 示例 |
|---|
| code | string | 否 | 用于程序判断错误原因的稳定业务错误码。 | "<string>" |
| detail | string | 是 | 便于阅读的错误说明。 | "<string>" |
| details | OpenapiErrorDetails | 否 | 字段校验失败时的详细信息。 | {"field":"<string>","reason":"<string>","suggestion":"<string>"} |
| details.field | string | 否 | 未通过校验的请求字段。 | "<string>" |
| details.reason | string | 否 | 稳定的校验失败原因,用于判断字段为何不合法。 | "<string>" |
| details.suggestion | string | 否 | 建议采用的规范化字段值。 | "<string>" |
| error | string | 是 | 稳定的 HTTP 错误类型。 | "<string>" |
{
"code": "<string>",
"detail": "<string>",
"details": {
"field": "<string>",
"reason": "<string>",
"suggestion": "<string>"
},
"error": "<string>"
}