【问题标题】:Are partial response un-RESTful部分响应是否非 RESTful
【发布时间】:2014-01-26 11:59:03
【问题描述】:

在讨论设计我们的 REST api 的过程中,一位开发人员告诉部分响应不是 RESTful。 例如在返回 /forums/{forum_id}/users 的响应时,我只是返回用户名和头像图片。 当有人想要有关用户的详细信息时,我会发送 {age, location, points_scored etc. etc.}。 在尝试使用 ember-data 对此进行建模时,我们遇到了https://github.com/emberjs/data/issues/51 中提到的问题 那时开发人员指出部分响应是针对 RESTful 设计的。但是我在任何 REST 书籍或 Internet 上都找不到任何此类信息。此外,我发现谷歌实际上在他们的 RESTful API 中使用了部分响应,并且有很多人在使用它。

所以想知道部分响应(如上述)是否真的不推荐用于 RESTful 服务,或者它只是一个设计选择问题。

【问题讨论】:

    标签: rest ember.js


    【解决方案1】:

    与常见的误解相反,REST 并不强制您读取和写入完全相同的资源。

    CouchDB 是一个很好的例子。它处理:

    • “对象”(又名“文档”)可以创建读取更新删除
    • 和“视图”,它们是从文档中计算出来的,只能读取

    在您的情况下,/forums/01a0/users 将是一个“视图”,而/user/99a7 将是一个“对象”。

    【讨论】:

    • 嗨,Aurélien,你说的很好。但我想知道的是,如果我在我的 API 中返回资源的部分视图(例如,只返回一个人的名称),那么我是否违反了 REST 原则?
    • @Rahul 在列出论坛用户的“视图”中,您肯定可以获得每个用户的部分信息(例如姓名和头像图片)。
    • 当您在可更新资源中混合来自其他资源的数据时,痛苦(尤其是缓存)是什么。只读“视图”的问题要简单得多。
    猜你喜欢
    • 2017-08-12
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2019-09-17
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多