在不知道其价值的情况下,将 RESTful API 中资源字段的值增加固定数量
Increase the value of a field of a resource in a RESTful API by a fixed amount without knowing it's value
我正在从事 API 的工作,负责管理长期 运行ning 作业。
您可以通过发布到
来创造就业机会
/jobs/
这会为您提供一个带有进度字段的对象
{"progress_percentage": 0.0, "id": 1}
然后您可以通过修补
来更改此作业的实例
/jobs/<job-id>/
虽然作业是 运行ning,但我想按 api 来增加进度,因为作业是 运行ning,从 0.0 开始,到 100.0 结束。
任何给定的作业都可以拆分成更小的任务,这些任务可以 运行 并发,并且可以分配进度 'chunks'。
我希望每个块都增加相对于它的分配进度的进度。
例如,如果任务 1 是 运行ning 并分配了 30% 的进度块,并且在这个大小为 5 的任务中有一个 for 循环,我希望每次迭代的进度百分比增加 6% for 循环,不管当前进度百分比是多少。
其他工作可能只是想简单地设置百分比(而不是增加它)
那么我的问题是,从 API 设计的角度来看,最理想的方法是什么。
我看到几个选项
1.
PATCH /jobs/<job-id>/
负载为
{"progress_percentage": {"increase": 6.0}}
增加
或
{"progress_percentage": {"set": 35.0}}
设置。
2.
POST /jobs/<job-id>/progress_percentage/
负载为
{"amount" 6.0} or [6.0]
增加或
PATCH /jobs/<job-id>/
负载为
{"progress_percentage" 30.0}
设置。
假设您的 REST API 没有公开,我认为选项 1 更有利。
由于 'progress_percentage' 是 'job' 对象的 属性,我认为没有必要引入子资源(即 /progress_percentage)。
此外,如果您想为多个 'job' 属性执行 PATCH,您希望能够将其作为单个请求和有效负载的一部分来执行,而不是触发多个 PATCH 请求.为此,使用 'PATCH /jobs/{job-id}/' 是有道理的。
我正在从事 API 的工作,负责管理长期 运行ning 作业。 您可以通过发布到
来创造就业机会/jobs/
这会为您提供一个带有进度字段的对象
{"progress_percentage": 0.0, "id": 1}
然后您可以通过修补
来更改此作业的实例/jobs/<job-id>/
虽然作业是 运行ning,但我想按 api 来增加进度,因为作业是 运行ning,从 0.0 开始,到 100.0 结束。 任何给定的作业都可以拆分成更小的任务,这些任务可以 运行 并发,并且可以分配进度 'chunks'。 我希望每个块都增加相对于它的分配进度的进度。 例如,如果任务 1 是 运行ning 并分配了 30% 的进度块,并且在这个大小为 5 的任务中有一个 for 循环,我希望每次迭代的进度百分比增加 6% for 循环,不管当前进度百分比是多少。
其他工作可能只是想简单地设置百分比(而不是增加它)
那么我的问题是,从 API 设计的角度来看,最理想的方法是什么。
我看到几个选项
1.
PATCH /jobs/<job-id>/
负载为
{"progress_percentage": {"increase": 6.0}}
增加
或
{"progress_percentage": {"set": 35.0}}
设置。
2.
POST /jobs/<job-id>/progress_percentage/
负载为
{"amount" 6.0} or [6.0]
增加或
PATCH /jobs/<job-id>/
负载为
{"progress_percentage" 30.0}
设置。
假设您的 REST API 没有公开,我认为选项 1 更有利。
由于 'progress_percentage' 是 'job' 对象的 属性,我认为没有必要引入子资源(即 /progress_percentage)。
此外,如果您想为多个 'job' 属性执行 PATCH,您希望能够将其作为单个请求和有效负载的一部分来执行,而不是触发多个 PATCH 请求.为此,使用 'PATCH /jobs/{job-id}/' 是有道理的。