REST - 部分资源

2023-12-30

在 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(使用前将#替换为@)

REST - 部分资源 的相关文章

随机推荐