【发布时间】:2016-09-22 13:03:46
【问题描述】:
我们有一个 Web 应用程序(AngularJS 和 Web API),它具有非常简单的功能 - 显示作业列表并允许用户选择和取消选定的作业。
我们正在尝试使用我们的 API 遵循 RESTful 方法,但这就是令人困惑的地方。
找工作很容易——简单GET: /jobs
我们应该如何取消选中的作业?请记住,这是我们需要实施的作业的唯一操作。 (对我来说)最简单和最合乎逻辑的方法是将所选作业 ID 的列表发送到 API(服务器)并执行必要的程序。但这不是 RESTful 方式。
如果我们要按照 RESTful 方法来做,我们需要向jobs 发送 PATCH 请求,json 类似于:
PATCH: /jobs
[
{
"op": "replace",
"path": "/jobs/123",
"status": "cancelled"
},
{
"op": "replace",
"path": "/jobs/321",
"status": "cancelled"
},
]
这将需要在客户端生成此 json,然后将其映射到服务器上的某些模型,解析 "path" 属性以获取作业 ID,然后进行实际取消。这对我来说似乎非常复杂和人为。
关于这种操作的一般建议是什么?当很多操作不能简单地映射到 RESTful 资源范式时,我很好奇人们在现实生活中会做什么。
谢谢!
【问题讨论】:
标签: rest api asp.net-web-api restful-architecture