REST方法,用于获取PATCH对PUT执行的操作

时间:2014-07-22 18:19:42

标签: rest http

PATCH允许仅更新资源的某些字段,从而导致部分更新,而PUT更新完整资源。 GET只能获得完整的资源。

是否存在部分查询资源的RESTful约定,如果所述资源非常繁重且包含大量字段?

可能是关于URL中查询的约定?还是另一个伪资源的定义?

2 个答案:

答案 0 :(得分:2)

没有任何其他方法专门用于获取资源的一部分。根据我的经验,有两个简单的选择。 (我的意见是第二种选择更好,但那里可能存在分歧。)

选项1

使用查询参数可以选择要返回的属性。

GET /basket/17

{
  "blueberry": 5,
  "grape": 7,
  "watermelon": "<base64 encoded file>"
}

GET /basket/17?p=blueberry&p=grape

{
  "blueberry": 5,
  "grape": 7
}

选项2

资源的所有重要属性都成为单独的资源,主要资源具有指向它们的链接。

GET /basket/17

{
  "blueberry": 5,
  "grape": 7,
  "watermelon": "/basket/watermelon/17"
}

GET /basket/watermelon/17

<bytes of file>

答案 1 :(得分:0)

您可以定义自定义范围单元来表达您的语义并使用GET。请参阅http://greenbytes.de/tech/webdav/rfc7233.html