当存在一对一映射以及如何设计REST URI时,使用单数名称是否正确?

问题描述 投票:0回答:1

我想知道什么时候在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。互联网购物清单具有完全不同的架构。

我们对这个用例有几个想法:

  1. 创建完全不同的路径,例如/me/shopping_lists/{id},但/me/internet_shopping_list(单数)用于特定列表。这是我最好的选择。
  2. 创建相同的路径,例如/me/shopping_lists/{id},但/me/shopping_lists/internet_shopping_list用于特定列表。
  3. 或者另一种方式?
rest api uri url-design
1个回答
0
投票

我一直在思考这个问题,一些答案比其他答案更好。假设用户提供了一个令牌来识别自己: - /me/fidelity_accounts/mine - mine这里将是id的别名。 - /me/fidelity_accounts/{id} - 因此,{id}只有在帐户的ID与用户提供的令牌相关时才能工作。 - /me/fidelity_account - 这不是很安静,但这是最简单的方式

© www.soinside.com 2019 - 2024. All rights reserved.