REST API包含两个字段

时间:2018-01-02 17:29:08

标签: rest api url url-rewriting

我已经阅读了很多API REST和可能的方法,但我并不是100%清楚我必须做什么。

我想知道执行以下操作的最佳方法是什么:

我有一个安全的REST,其中包含与帐户相关的令牌。然后我还有与特定帐户相关的对象。

我需要根据accountId获取对象(此帐户是必需的)。 accountId是对象的属性。 用户可以拥有多个帐户,因此我需要发送用户选择的accountId来检索特定对象。

即使我搜索特定对象,我也需要发送accountId(此帐户与安全限制有关)。

这样做最好的是什么?

选项1,作为路径参数:

获取所有对象

/objects/account/{accountId}

获取一个对象

/objects/{id}/account/{accountId}

选项2:

获取所有对象

/objects?account=accountId

获取一个对象

/objects/{id}?account=accountId

谢谢,

1 个答案:

答案 0 :(得分:2)

虽然帐户ID是对象的属性,但它听起来像所属的对象。在这种情况下,我会建议/accounts/{id}/objects。您可以将其扩展为/accounts/{id}/objects/{id},但我不确定您是否确实需要网址才能找到对象 - 您应该可以使用/objects/{id}并获取帐户来自标头中的auth标记,以确保请求者实际拥有该对象。实际上,如果你不介意/objects为不同的用户返回不同的列表,你可以对/objects执行相同的操作。

对于它的价值,我不认为实际上有一个"权利"回答这个问题。我自己也在搜索这个问题的答案,并且有充分的理由这样做。