rest - 获取时删除某些内容是 RESTfull 吗?

标签 rest http web restful-architecture

自然而然的答案当然是否定的,所以为了理解我的意思,请让我解释一下。

我们有一个服务,其中客户端 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/

相关文章:

java - 如何将 JSON 对象从 Javascript 传递到 Java

Django REST 序列化程序方法可写字段

php - 文本魔术短信 API 在 Godaddy 共享主机上出现错误

asp.net - 如何 : Background image should remain static but the webpage on it must scroll down in asp. 网络

c# - 所有日期时间都存储在 utc 中

php - 如何在PHP中使用WHERE中的if语句编写sql查询

java - Tomcat 8.0 为 Jersey 休息服务提供 404

rest - PUT 请求的 Pyramid 遍历

http - 在 HAProxy 上重定向

ios - 处理 iOS 上 Core Data 数据库的频繁更新和请求的最佳实践?