gpt4 book ai didi

REST 数字或字符串资源标识符?

转载 作者:行者123 更新时间:2023-12-02 07:08:48 24 4
gpt4 key购买 nike

我正在做一些研究来帮助我开发 REST API,这是我在任何地方都没有看到过深入讨论的主题。

如果我的系统中有一个用户,使用数字标识符来识别该用户是否更好

/users/1

或者使用字符串标识符?

/users/RSmith

我可以看到每种方法的假设潜在优点和缺点,字符串标识符更易于人类阅读,不易发现(无法增加以查找有效用户),并且不需要在数据库中存储另一个数字 ID(我不想通过 API 公开数据库 ID)。数字标识符没有固有含义,因此可以保证不可变,而使用字符串 id,用户可能想要重命名资源,从而更改资源 URI。

这里是否有 REST 最佳实践,或者最佳方法是否因系统而异?如果是后者,每种方法是否还有其他优点和缺点?

最佳答案

如您所知,严格来说,这两种方法之间没有优势。是的,字符串标识可能更容易让人记住,但除此之外,REST 并不强制使用“漂亮”的 URL(或 ID),因为大多数时候 URL 是由程序通过超链接访问的。

因此,人类友好的 URL 应该仅用于引导人类可能记住的资源。此外,ID 猜测不应该成为问题,因为:

  1. 您必须根据任何身份验证方法限制对网址的访问,或者:
  2. 您必须使用非“公开”的随机/不可猜测的网址。

那么该使用哪一个呢?大多数时候,这并不重要,因为 ID 不是直接访问的。如果您出于某种原因必须确保人们记住他们的 URL,请尝试使它们人性化,但尽量避免资源名称更改并应用其他一些身份验证方法,以便即使是猜测的 URL 也无法访问未经授权的位置。

关于REST 数字或字符串资源标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com