我正在做一些研究来帮助我开发一个 REST API,这是我在任何地方都没有深入讨论过的一个话题。
如果我在系统中有用户,使用数字标识符识别用户是否更好
/用户/1
还是使用字符串标识符?
/用户/RSmith
我可以看到每种方法的假设潜在优缺点,字符串标识符更易于阅读,不易被发现(无法增加以查找有效用户),并且不需要在数据库中存储另一个数字 id(我不会想要通过 API 公开数据库 ID)。数字标识符没有内在含义,因此可以保证是不可变的,而对于字符串 id,用户可能想要重命名资源,从而更改资源 URI。
这里是否有 REST 最佳实践,或者最佳方法是否因系统而异?如果是后者,是否有与每种方法相关的其他优点和缺点?