在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
}
假设参数列表相当长。 假设我有一个 API 消费者,他在创建 API 设计时只想要几个字段,比如 id 和 name.first。 我假设允许这样的内容是很常见的:
/person?fields=id,name 其中 fields 表示我只想要这些字段。
我的问题是,那么 Person 资源应该返回所有字段和 null,只返回具有值的那些字段,还是仅返回带有 id 和 name 的 Person 表示,并从后端动态地删除所有其他参数。
看起来方案 #2 更加简洁,但它在 REST 中是否合理,或者人们通常会返回所有其他字段(以确保我们保持结构/模式的一致性/可靠性)并将其设置为 null 值?