我已经阅读了很多API REST和可能的方法,但我并不是100%清楚我必须做什么。
我想知道执行以下操作的最佳方法是什么:
我有一个安全的REST,其中包含与帐户相关的令牌。然后我还有与特定帐户相关的对象。
我需要根据accountId获取对象(此帐户是必需的)。 accountId是对象的属性。 用户可以拥有多个帐户,因此我需要发送用户选择的accountId来检索特定对象。
即使我搜索特定对象,我也需要发送accountId(此帐户与安全限制有关)。
这样做最好的是什么?
选项1,作为路径参数:
获取所有对象
/objects/account/{accountId}
获取一个对象
/objects/{id}/account/{accountId}
选项2:
获取所有对象
/objects?account=accountId
获取一个对象
/objects/{id}?account=accountId
谢谢,
答案 0 :(得分:2)
虽然帐户ID是对象的属性,但它听起来像所属的对象。在这种情况下,我会建议/accounts/{id}/objects
。您可以将其扩展为/accounts/{id}/objects/{id}
,但我不确定您是否确实需要网址才能找到对象 - 您应该可以使用/objects/{id}
并获取帐户来自标头中的auth标记,以确保请求者实际拥有该对象。实际上,如果你不介意/objects
为不同的用户返回不同的列表,你可以对/objects
执行相同的操作。
对于它的价值,我不认为实际上有一个"权利"回答这个问题。我自己也在搜索这个问题的答案,并且有充分的理由这样做。