【问题标题】:HATEOAS with JSON over HTTPHATEOAS 与 JSON over HTTP
【发布时间】:2013-12-07 21:12:45
【问题描述】:

我有一个简单的类似 CRUD 的 Web-API,使用基于 HTTP 的 JSON(Person 实体的存储库,一个联系人应用程序)。现在我想把它设计成非常适合 RESTful 架构。 这一切都很简单,除了一件事:

如果我没有 html,如何实现 HATEOAS 约束?如果主要(当前唯一的)内容类型是仅包含资源/url 后面的实际实体的 JSON,那么有什么好方法?

想到的一件事是link HTTP 标头,但这真的是要走的路吗?

【问题讨论】:

    标签: json http rest hateoas


    【解决方案1】:

    虽然纯 JSON 无法为您提供链接关系,但还有其他基于 JSON 构建的媒体类型可以做到(与 Atom 构建 XML 的方式非常相似)。我个人最喜欢的是Hypertext Application Language (HAL)

    按照我对链接标头的理解,它们应该用于真正无法提供链接的媒体类型...例如图像和其他非文本资源。虽然您可以将链接标头用于基于文本的资源,但您没有相同的灵活性来定位资源的各个部分。你几乎坚持链接到/从整个资源。

    【讨论】:

      【解决方案2】:

      不要使用特殊的媒体类型使事情复杂化。在我的硕士论文中,我利用链接头连接到其他相关资源。此外,我使用 URL 关系类型和 URL http 链接的组合在 json 中添加了超链接。 Json 不是一种超媒体格式,但它可以作为一种格式使用。请参阅 JSON 哑剧: vnd.collection + JSON。

      我能给出的最佳建议是尽可能多地使用链接标头,直到社区决定如何在 API 中实现 hatoas。使用已有的关系类型(微类型)并定义您自己的。

      【讨论】:

        猜你喜欢
        • 2011-09-29
        • 2016-02-21
        • 2021-09-13
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 2011-05-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多