我正在做一些研究来帮助我开发一个REST API,这是我从未在任何地方深入讨论过的一个主题。REST数字或字符串资源标识符?
如果我在系统中有一个用户,岂不是更好使用数字标识符
/用户/ 1
或者使用字符串标识符来识别用户?
/用户/ RSmith
我能看到假想的潜在利弊,每种方法,串标识符是更可读,发现少(不能递增找到有效用户),和不要求在数据库中存储另一个数字ID(我不想通过API公开数据库ID)。数字标识符没有固有含义,因此可以保证不可变,而对于字符串id,用户可能需要重命名资源,从而更改资源URI。
这里是否存在REST最佳实践或最佳方法因系统而异?如果是后者,是否还有与每种方法相关的其他优点和缺点?
看来这是一个应用程序的问题,因为它是需要使用URI来执行的。你已经确定了一些很好的亲&的。任何一种方法产生的都是识别资源的有效URI,因此让您的业务/安全问题可以推动选择。就确定REST最佳实践而言,这是启动火焰战争的好方法,因为每个人似乎都使用高度个人化的REST定义:) –