设计端点的正确方法

时间:2018-04-27 14:44:15

标签: rest url-design

我正在设计REST。我有用户和用户有不同类型的联系人。根据REST,我的端点应该是什么样的?

这看起来很合理:

GET /users/:id/contacts
GET /contacts

在用户端点上,我检查其他用户和联系人端点的联系人我检查联系人中的登录用户,但如果我需要获取所有用户的所有联系人,我需要制作过滤器:

GET /contacts?user_id=:id

并使此端点返回所有联系人。这使得用户端点变得多余。

根据REST执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

  

根据REST,我的端点应该是什么样的? [...]根据REST做什么是正确的方法?

这是误解

REST架构不强制执行任何URI设计(请参阅下面的注释)。完全取决于您选择更好地识别资源的URI。

URI语法在RFC 3986中定义。作为一般规则,路径以分层形式组织(段由/分隔)并且可以在查询组件中包含非分层数据(从?开始)。

所以/users/{id}/contacts似乎可以识别属于特定用户的联系人集合

注1:在Roy T. Fielding的论文的chapter 5中描述了REST架构风格,它定义了一组必须遵循的应用程序约束遵循这样的架构。但它没有说明URI必须是什么样的。

注2:由Martin Fowler撰写的popular article示例解释由Leonard Richardson定义的模型建议一种看似友好且易于阅读的URI结构。