【问题标题】:RESTful API including additional fields包含附加字段的 RESTful API
【发布时间】:2021-08-30 06:22:12
【问题描述】:

我正在设计一个 RESTful API。

这是用户资源的基本 GET API。

获取/用户

[
  {
    "id": 1,
    "name": "John doe"
  },
  {
    "id": 2,
    "name": "Jane doe"
  }
]

但是,有时我需要在响应中添加额外的字段。例如,在某些情况下应该添加年龄(不在用户表中)。

GET /users?age=true ???

[
  {
    "id": 1,
    "name": "John doe",
    "age": 28
  },
  {
    "id": 2,
    "name": "Jane doe",
    "age": 24
  }
]

是否有针对这种情况的 RESTful API 指南?

【问题讨论】:

  • 一般的 HTTP 准则是,如果您需要对 GET 请求的 2 个不同响应,则 URL 应该不同,或者您应该使用内容协商(Accept* 标头)

标签: rest restful-url


【解决方案1】:

是否有针对这种情况的 RESTful API 指南?

不是真的 - 你的建议是好的

REST 对 (a) 您在资源表示中包含哪些信息或 (b) 您对标识符使用哪些拼写约定没有任何限制。

可能想考虑使用更高抽象级别的标识符,而不是尝试在标识符中枚举整个字段集合。

REST 接口旨在高效地进行大粒度超媒体数据传输,针对 Web 的常见情况进行了优化,但导致的接口对于其他形式的架构交互不是最佳的。 -- Fielding, 2000

这通常意味着您最好使用一种可供许多不同客户使用的资源,而不是尝试支持许多不同的较小“更高效”的资源。

您需要许多较小资源的一种情况:当不同字段的存在/不存在影响谁被允许访问资源时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2011-02-15
    相关资源
    最近更新 更多