【问题标题】:Is HTTP accepting a json format object called Rest architecture?HTTP 是否接受名为 Rest 架构的 json 格式对象?
【发布时间】:2016-08-26 12:16:10
【问题描述】:

我一直在使用 Spring 框架来处理 Rest 和 json。

我有几个疑问。

1)http以json的形式传输数据是否可以称为Rest。我知道http是协议,Rest是架构风格?

2)任何接受json形式的数据(从任何客户端发送)的应用程序(url)都可以称为Rest吗?

2)为什么肥皂协议在后台使用 http?

【问题讨论】:

    标签: json rest http soap


    【解决方案1】:

    ReST 是一种完全独立于 HTTP 或 JSON 的架构风格。 ReST 实际上只谈论将域建模为一组“资源”。任何资源都有一个唯一标识符,将其与其他资源区分开来。客户端使用通用协议与资源交互,并通过操纵其表示来创建/修改/删除资源。

    HTTP 和 JSON 都是 ReSTful 架构的特定实现的两个方面。 HTTP 是用于 ReSTful 应用程序的良好传输机制,以 HTTP 的一组动词(GET、PUT、POST、DELETE)的形式提供通用 API。 JSON 是一种很好的文档传输格式,因此通常用于实现 ReST 的“表示”方面,但如果选择,ReSTful 应用程序可以使用其他文档格式 - 您可以找到使用 XML、JPEG、AVI、MP3 等的 ReSTful 应用程序。 ..

    HTTP 和 JSON 都不是专门为 ReSTful 的,并且完全有可能找到使用根本不是 ReSTful 的 JSON 的 HTTP 应用程序。同样,并非每个 ReSTful 应用程序都会使用 JSON 或 HTTP(尽管我从未见过不使用 HTTP/HTTPS 的实际应用程序)。

    【讨论】:

    • 我有一个疑问。哪种http应用程序使用JSON但不宁静?你有没有见过任何不使用http的restful应用程序(在这种情况下如何处理传输)?
    • 如果我构建了一个可以处理 JSON 输入并以 JSON 格式提供正确输出的 HTTP 应用程序,那么我们可以称该应用程序遵循 Restful 架构吗?。
    • 您可以使用任何传输机制构建 ReSTful 应用程序 - HTTP 不是唯一的协议。接受 JSON 的 HTTP 应用程序可能是也可能不是 ReSTful。如果它表现得像一个老式的 CGI 应用程序,那么它就不是 ReSTful。
    【解决方案2】:

    Rest 不仅仅与 JSON 有关,您还拥有动词 GET、POST、PUT、DELETE 和用于您的答案的 http 代码。

    如果你为每一个动作都发布 JSON,那么它就不会安静

    在 REST 中,一切都是资源。

    HTTP 是一个应用层。它与 REST 概念无关。您通过 http 看到一个网页,这根本不是 REST。所以SOAP也可以使用http。

    HTTP 没有绑定到 REST,但 REST 绑定到了 HTTP

    【讨论】:

      【解决方案3】:

      正如其他 cmets 所述,RESTful 是一种架构,而不是一种语言或编码范式。

      RESTful: JSON-RPC (https://github.com/ethereum/wiki/wiki/JSON-RPC) 是反 REST 的。该框架是一个远程过程调用库。 JSON-RPC 绝对不是 RESTful,因为 RPC 层将 url 映射到函数(即动词)而不是特定资源(即名词)。因此,您调用的是一个方法,而不是 POST 到某个资源,而是调用 JSON 作为序列化数据的格式。每个都有权衡。碰巧 RESTful API 在公共 API 中很常见,因为许多人认为文档对外人来说更清晰。

      JSON: 另一方面,可以开发一个 RESTful 架构而不使用 JSON。有许多序列化库,每个库都进行了权衡,例如压缩和无模式与更接近类型安全的东西。 JSON 之外的示例包括 MessagePack 和 Google 的 ProtoBufs。粗略地说,您甚至可以使用 XML,尽管在 RESTful API 中并不常见。 JSON 在公共 API 中被大量使用,因为几乎任何语言都可以通过低 3rd 方开销(即不导入特定库)进行 JSON 序列化

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 2012-04-13
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        相关资源
        最近更新 更多