问题标签 [url-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - 存在一对一映射以及如何设计 REST URI 时使用单数名称是否正确?
我想知道在 REST 中使用单数名称何时被认为是正确的(我的意思是,使用最佳实践),但更特别是当两个实体之间存在一对一映射时。
第一个例子,我们必须为客户管理忠诚度。客户可以使用 访问他的个人资料/me
。此外,他有一个忠诚度帐户,其中显示有关忠诚度积分、折扣、解锁特定状态的下一个阈值的若干信息。你会设计这样的路径:
/me/fidelity_account
,/me/fidelity_accounts/mine
- 我的最爱,/me/my_fidelity_account
,/me/my_fidelity_accounts/mine
,/me/fidelity_accounts/{id}
,假设给出错误的 id 给出 403,- 或任何其他方式来设计?
第二个例子,我们必须为客户管理购物清单。一个客户可能有多个列表,但必须至少始终有一个称为“Internet Shopping List”的列表。此列表是唯一的,在其他列表中具有自己的 ID。网上购物清单有一个完全不同的模式。
我们对这个用例有几个想法:
- 为特定列表创建完全不同的路径,例如
/me/shopping_lists/{id}
,但(单数)。/me/internet_shopping_list
这是我最好的选择。 - 创建相同的路径,例如
/me/shopping_lists/{id}
,但/me/shopping_lists/internet_shopping_list
针对特定列表。 - 或者也许是另一种方式?
url - 命名编辑页面 URL 的最佳实践
我有一个包含活动的网站,每个活动都有多个调查。
如果我要编辑广告系列,我的 URL 名为
如果我想在活动中编辑调查,我有一个名为
我的页面将获取 ID 为 1 的活动和 ID 为 3 的调查的数据。
虽然这可行,但我想知道是否确实存在某种更适合此的约定,或者这样的 URL 是否可以?
url - 通过 URL 与参数传递记录 ID 的优缺点
我正在研究一个 API,想知道通过 URL 传递 ID 与作为参数来访问记录是否有任何优点/缺点。
示例:获取 ID 为 1 的消息的信息
您可以这样做,example.com/messages/1
以 JSON 格式返回 ID 1 的消息。
或者你可以这样做example.com/messages?id=1
。
是否有任何理由选择其中一个,或者只是个人喜好?
rest - Rest : How to identify an action non resource related
I would like to use the Rest-Easy framework to develop my application. My application is VOIP (telephony) related. It can :
- Originate a phone call between two phone numbers
- Transfer a phone call
- Perform CRUD actions on resources
Those phone calls are not saved and thus are not considered as resources in my application.
How should I name the rest url to originate a phone call ?
- /originate/numberA,numberB
- /originate/[numberA,numberB]
- /number/numberA/originate/numberB
- other?
Same goes for transfer (where 3 parameters (phone numbers) are required).
rest - 设计端点的正确方法
我正在设计 REST。我有用户,用户有不同类型的联系人。根据 REST,我的端点应该是什么样的?
这看起来很合理:
在用户端点上,我检查另一个用户的联系人,在联系人端点上,我在联系人中检查登录用户,但是如果我需要获取所有用户的所有联系人,我需要进行过滤:
并使此端点返回所有联系人。这使得用户的端点变得多余。
根据 REST 的正确方法是什么?
url - 为什么用“?” 而不是 URL 中的“:”?
我们可以用
更新数据。
有人建议我可以使用另一种方法:
但我不知道它有什么作用。请解释我为什么在搜索路径中我们更喜欢?
标记而不是标记。:
rest - 如何定义我的 REST API?
我有 3 个模型:锦标赛、冠军和竞争者:
- 一场比赛有很多冠军;
- 冠军属于锦标赛;_
- 一个冠军有很多竞争对手。
因此,要列出所有锦标赛的所有参赛者,URL 是:
但是要添加一个竞争对手,它与冠军有关,所以:
对于同一个模型,两个动词(GET 和 POST)有不同的 URI 可以吗?否则,我该怎么办?
我喜欢这样做:
没有必要的字段。
rest - 为 REST API 设计 URI 的最佳方式
我正在设计一个与 Facebook 中的帖子和评论功能相似的 REST API。
URI 看起来像:
为了获得所有评论,我使用集合 URI 命名标准。例如:
但是当我需要对所有帖子发表评论时,我遇到了困难。记住我只想将此设计用于帖子和评论的最佳方式是什么?
编辑
我必须在这里提到,我使用的资源与帖子和评论有点不同,在我的设计中我将不得不使用帖子并且不能将评论作为完全不同的实体。很抱歉对于这个误会。
话虽如此,是否建议以以下任何一种方式设计 URI:
url - 三级域和路径之间的区别
标题总结了它:类似的东西有什么区别:
和
前者只是更持久和/或更容易发号施令吗?或者两者之间的目标IP地址会完全不同吗?
rest - 如何设计一个宁静的登录网址?
我对这个主题进行了研究,但我仍然找不到任何答案。
我正在尝试使用 oauth2 和 jwt 来实现 Web 登录功能,那么我需要后端和前端之间的休息风格 api。
10 年前,人们只是使用 ..../login 来处理它,但是 Restful api 提示 url 中没有动词。所以有人建议我们可以使用....../accesstoken,然后POST用户名和密码来获取token。
但是,我认为如果我们将 accesstoken 视为资源,当我们想要获取 accesstoken 时,我们应该使用 GET 方法,不是吗?
所以我的问题是:在设计用于登录的宁静风格 url 时,最佳实践是什么?或者只是restful api无法实现这一点?
谢谢!
===更新===
在 spring oauth2 中,它提供的默认 url 是 post grant_type 和 url /oauth/token 的相关信息。但是我们应该使用GET方法来获取资源吗?