精心设计的GetAll,GetMine,GetForUID

时间:2019-04-01 18:46:34

标签: rest api

我们有一些可能属于特定用户的资源。我们需要解决3个用例:

  1. 获取所有资源,无论所有权如何
  2. 获取属于我的资源
  3. 获取属于特定用户的所有资源

表达这些端点RESTFully的最佳选择是什么?

2 个答案:

答案 0 :(得分:0)

我不确定其最佳选项,但是一个选项是:

  1. 获取所有资源,无论所有权如何: GET /api/v0/resources
  2. 获取属于我的资源 GET /api/v0/users/me/resources
  3. 获取属于特定用户的所有资源 GET /api/v0/users/<uid>/resources

请注意,在这种情况下,me被认为是特殊的uid。如果可以将/users/me/替换为/users/<id of me>/

,则可以将选项2和3合并在选项3下。

答案 1 :(得分:0)

这是一个主观意见,但这是我如何处理此问题:

/resource <- all resources
/resource/123 <- a specific resource
/user/1234/resource

'my'资源不需要特殊情况,但是有时我们确实创建了一个单独的端点来查找当前用户:

/current-user <- might be a 302 redirect to /user/####