自然而然的答案当然是否定的,所以为了理解我的意思,请让我解释一下。
我们有一个服务,其中客户端 POST
要执行的作业,但它们不会在发布时执行。相反,我们的服务使用一个 ID 进行响应,客户端可以使用该 ID 通过 GET
执行 job
。
现在当作业被执行时,它也被删除并且该作业不再可用。
根据我对RESTfull架构的理解,我们的实现不符合REST的思想。
所以我想知道的是,如果不是 RESTfull,我们应该如何重新设计才能成为 RESTfull?只是将我们的 GET
更改为 POST
(我不相信,因为我们正在删除一些东西(工作))同时 DELETE
也看起来很奇怪,因为我们正在执行一个 job
with job
我的意思是我们正在从我们的数据库中提供可能大量的数据。
最佳答案
our service responds with an ID which the client may use to execute the job via a GET.
这听起来不像是 RESTful。客户端应PUT
到作业资源,也许将作业状态设置为执行
。
PUT /jobs/1234
{
"status": "execute"
}
200 OK
客户端稍后可以GET
作业资源来检查状态。也许稍后状态会更改为 completed
。
GET /jobs/1234
200 OK
{
"id": 1234,
"status": "completed",
"quizzle": "smooth"
}
如果一段时间后系统的某个不同部分删除了已完成
作业,则对作业资源的GET
将导致410 Gone
.
GET /jobs/1234
410 Gone
关于rest - 获取时删除某些内容是 RESTfull 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783326/