0

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

这看起来很合理:

GET /users/:id/contacts
GET /contacts

在用户端点上,我检查另一个用户的联系人,在联系人端点上,我在联系人中检查登录用户,但是如果我需要获取所有用户的所有联系人,我需要进行过滤:

GET /contacts?user_id=:id

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

根据 REST 的正确方法是什么?

4

1 回答 1

4

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

那是一种误解

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


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

因此,识别属于特定用户的联系人集合/users/{id}/contacts似乎很好。


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

注 2: Martin Fowler 撰写的一篇流行文章示例解释了 Leonard Richardson 定义的模型,这表明URI 结构看起来友好且易于阅读。

于 2018-04-27T14:50:10.150 回答