触发长 运行 任务的 CRUD 操作的 REST API 最佳实践
REST API best practices for CRUD operation that triggers a long running task
在我的架构中,我有一组实体,当 created/updated 触发长时间的 运行 任务时,该任务会执行长时间的重新计算(大约 6-7 分钟)。
实际上我在 Hangfire 中触发了任务,我想将一个令牌传递给客户端,该令牌可用于查询另一个端点以监控较长的 运行 任务进度。最好的方法是什么?
这样可以吗?还是有 better/standard 种方法可以将结果呈现给客户?
{
"data": {
"id": 2,
"dateCreated": "2021-02-11T17:10:17.16",
"userCreated": "",
"dateModified": "2021-02-11T17:10:17.16",
"userModified": "",
"code": "SPEC-002",
"name": "My entity",
"_links": [
// HATEOAS links
],
"_tasks": [
// long running tasks info
]
}
}
通常我会通过以下方式解决这个问题:
- 请求时,return
202 Accepted
.
- 在响应中,return 具有 up-to-date 状态的 link。我通常为此使用
Link
header,但您也可以使用 HAL link.
在我的架构中,我有一组实体,当 created/updated 触发长时间的 运行 任务时,该任务会执行长时间的重新计算(大约 6-7 分钟)。
实际上我在 Hangfire 中触发了任务,我想将一个令牌传递给客户端,该令牌可用于查询另一个端点以监控较长的 运行 任务进度。最好的方法是什么?
这样可以吗?还是有 better/standard 种方法可以将结果呈现给客户?
{
"data": {
"id": 2,
"dateCreated": "2021-02-11T17:10:17.16",
"userCreated": "",
"dateModified": "2021-02-11T17:10:17.16",
"userModified": "",
"code": "SPEC-002",
"name": "My entity",
"_links": [
// HATEOAS links
],
"_tasks": [
// long running tasks info
]
}
}
通常我会通过以下方式解决这个问题:
- 请求时,return
202 Accepted
. - 在响应中,return 具有 up-to-date 状态的 link。我通常为此使用
Link
header,但您也可以使用 HAL link.