REST - 部分资源

Pos*_*Guy 2 rest json

REST设计中常见的是允许返回部分资源.在这种情况下; 我想允许用户仅指定在该资源的JSON表示中返回的资源的某些字段.

例如,假设我们有一个资源Person:

{
   "id": 12,
   "name":{
          "first":"Angie",
          "last": "Smith",
          "middle": "joy",
          "maiden": "crowly",
    },
    "address": {
          "street": "1122 Something St.",
          ..and so on...
    },
... and so on
}
Run Code Online (Sandbox Code Playgroud)

让我们说params列表很长.并且假设我有一个API消费者,他在创建API设计之初只想要一些像id和name.first这样的字段.我假设允许这样的事情是很常见的:

/人?场= ID,名字

字段说我只想要那些字段.

我的问题是,Person资源应该返回所有带空值的字段,只返回那些带有值OR的字段,它应该只返回带有字段id和name的Person表示,并且你从后端动态地删除所有其他params.

似乎#2更清晰,但在REST中执行此操作是否有意义,或者人们通常是否返回所有其他字段(以确保我们将结构/模式的表示保持一致/可靠)与空值?

pel*_*umi 5

正如您所建议的那样,选项2更清晰,并且在REST中执行此操作是有意义的.

添加null会使部分响应的部分目的失败,因为它会使响应主体大于它需要的大小.

您描述的用例示例显示在Google Developer Forum上; 在" 部分响应"部分中.