【问题标题】:REST API routes URI - fetch by id or by a custom fieldREST API 路由 URI - 按 id 或自定义字段获取
【发布时间】:2017-02-08 19:13:12
【问题描述】:

我正在构建一个 REST API,我想知道什么是 URI 最佳实践。我有“用户”实体,它们具有唯一的电子邮件和 ID。然后我可以使用以下路由获取用户:

 GET /users/{id}
 GET /users/{email}

我应该公开 2 个不同的路由以便通过 ID 或 EMAIL 获取吗?

我查看了 Github API,他们对一些资源 (/:owner/:repo) 使用字段标识符,对其他资源使用 ID 号。

【问题讨论】:

  • 我会说这更多是一个用例决定——如果您希望或需要基于 id 和电子邮件获取用户的能力,那么就继续实施这两者。实现和维护的工作量略多一些,但提供了更大的灵活性。

标签: javascript rest api model uri


【解决方案1】:

我通常对我的 REST API 端点执行的操作是获取记录的 ID 并对其进行编码(散列)。

节点中一个很棒的库是 hashids:
https://www.npmjs.com/package/hashids

例如:
获取 /users/1

变成:
获取 /users/o2fXhV

这完全取决于您希望端点是什么。许多大公司使用不同的命名约定。选择适合您的。

【讨论】:

  • 嗨,我想知道是否有一个好的做法允许用户使用 2 个不同的 URI 获取相同的资源。示例:GET /users/123 - GET /users/to@to.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多