在 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,姓名
其中 fields 说我只想要那些字段。
我的问题是,那么 Person 资源是否应该返回所有带有 null 的字段,并且只返回那些带有值的字段,或者它应该只返回仅包含字段 id 和 name 的 Person 表示,并且您实际上从后端动态删除所有其他参数。
看起来 #2 更干净,但是在 REST 中这样做是否有意义,或者人们通常返回所有其他字段(以确保我们在结构/模式方面保持一致/可靠的表示)与空值?
正如您所建议的,选项 2 更干净,是的,在 REST 中这样做是有意义的。
添加 null 会破坏部分响应的部分目的,因为它会使响应正文大于其需要的大小。
您所描述的用例的示例显示在 Google 开发者论坛上;在里面部分回应 https://developers.google.com/drive/web/performance部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)