RESTful URI是否应公开数据库主键?

rou*_*ble 3 database rest web-services jersey

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

example.com/rest/customer/1
Run Code Online (Sandbox Code Playgroud)

"1"的最佳常见做法是什么.它是db生成的主键吗?

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

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

不使用主键有自己的一组问题.寻找关于这个主题的流行思想.

Gra*_*ler 5

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

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

他们将帮助数据库合并等,并保证他们是独一无二的.