4

我会保持简单。Restful URI 类似于:

example.com/rest/customer/1

什么是“1”的最佳常见做法是什么。是db生成的主键吗?

使用系统生成的主键让我认为它不利于:

  1. 数据库合并
  2. 导入/导出数据

不使用主键有其自身的一系列问题。寻找关于这个主题的普遍想法。

4

3 回答 3

6

我希望 id 是主键,因为这是您识别记录的方式。如果你愿意,并且你有一个,你可以使用自然主键,例如某人的员工 ID,而不是作为代理键的身份。

如果您的问题是整数而不是数据库主键(因此我想是可以猜到的),您可以改用GUID。它们可以在客户端或服务器端在应用程序或数据库中生成。

它们将有助于数据库合并等,并且保证它们是独一无二的。

于 2013-08-29T20:51:46.230 回答
2

如果您正确设计了 RESTful API,则 ID 编号方案的选择将变得不透明,并且与 API 的使用者无关。

针对您的 API 编码的应用程序将使用您的表示中的超链接在它周围导航,只要它们不尝试构建 URI应用HATEOAS的原则允许您使用数据库键作为您的资源 ID 而无需担心。

于 2013-08-30T02:42:17.720 回答
1

一般来说,没关系。

但是您应该始终将 href 作为您的唯一标识符返回给消费者,而不仅仅是一个 ID。如果您只返回一个 ID,这意味着他们必须知道资源所在的位置,并将该信息与 ID 结合起来以对资源发出唯一的请求。为它们返回 href 消除了耦合。

于 2013-10-03T21:58:41.840 回答