【发布时间】:2014-11-13 11:25:15
【问题描述】:
我有一个代表一组物理设备的资源。
调用GET v1/devices/ 会产生以下结果:
[
{
"MacAddress": "DD-22-33-15-15-66",
"Name": "Test Device",
"State": "Approved"
},
{
"MacAddress": "E5-21-56-44-11-B6",
"CompanyId": "Another Test Device",
"State": "Pending"
}
]
设备的状态(一个重要属性)只能是pending 或approved,因此也可以使用以下 GET 请求:
-
GET v1/devices/pending:检索所有挂起的设备 -
GET v1/devices/approved:检索所有已批准的设备
您还可以使用GET v1/devices/EF-55-33-44-54-61从资源中获取单个设备
我现在希望能够仅将设备状态从 Pending 更新为 Approved。
下面的 PATCH 调用有意义吗?
PATCH v1/devices/EF-55-33-44-54-61/approve
从一些阅读来看,正确的做法似乎是这样的:
[
{"replace": "/state", "value": "approved"}
]
但是对于这样一个特定的更新来说,这似乎太灵活了。我从不希望更新其他值,也不希望以任何其他方式更改状态。
【问题讨论】:
标签: rest asp.net-web-api patch asp.net-web-api2 restful-url