gpt4 book ai didi

rest - 将 RPC 接口(interface)转换为 REST

转载 作者:行者123 更新时间:2023-12-04 05:43:38 25 4
gpt4 key购买 nike

我已经使用 RPC 多年,但现在我们必须使用 REST。我试图了解两者之间的差异以及其中一个如何优于另一个。因此,我阅读了很多文章,试图完全理解其中的微妙之处。到目前为止,它看起来不错,但有一些小问题。

我理解(至少我认为我理解),将事物共享为通过使用动词 GET、PUT 等获取的资源的一般想法。这很好地映射到大多数服务器访问概念,但还有其他想法可以不那么容易映射。例如,我需要通知服务器下载一个 gravatar 图像并存储它。我不确定这如何适合 RESTful 端点。

请注意,我知道如何将 RPC 伪装成 REST,但我对此不感兴趣。我想以“REST方式”来做这件事,如果没有其他原因,只是为了了解这种方式实际上是什么。

最佳答案

是的,在大多数情况下,RPC 风格的服务很好地映射到 REST。因此,CRUD 操作可以映射到任何好的地方。无论如何,我们可以在第一阶段识别合约方法,将它们映射到 URI 和不同的 HTTP 动词。第二阶段是引入资源,可能以 DTO 对象的形式存在。

无论如何,从 RPC 到 REST(很可能是第 2 级)的路线图在 Richardson 成熟度模型 (RMM) 上得到了很好的描述:

  • 0级: SOAP、XML RPC、POX、单一 URI
  • 1级: URI 隧道,许多 URI,单个动词
  • 2级:许多 URI、许多动词、CRUD 服务(例如 Amazon S3)
  • 3级: 2级+超媒体RESTful服务

  • 更多关于 RMM 的信息:

    http://code.google.com/p/implementing-rest/wiki/RMM
    http://martinfowler.com/articles/richardsonMaturityModel.html

    但在我看来,你已经知道了。那么复杂的场景呢。他们有很多。作为问题的例子:

    For example, I need to inform the server to download a gravatar image and store it. I'm not sure how that fits into a RESTful endpoint.



    我不认为它很难映射到 REST。一切都取决于细微差别。例如,当用户选择“gravatar”选项时,为什么在注册用户时不这样做。或者为什么不使用 GET http://bookslirarysample.com/users/15/gravatar . REST 没有问题。

    但也许您不仅假设 REST 端点或如何说服务器。当然,在 gravatar 下的功能不仅仅是 REST 调用。服务器上可能是消息总线,您的 REST 服务器通过它发送消息。特殊的“下载器”服务将收到此消息,下载图像,将其存储并保存到具有某些 id 的用户 oject。 REST 并没有减少它背后的巨大服务器基础设施。 REST 外观背后可能是复杂的企业级事件驱动架构。这对 REST 来说不是问题。

    无论如何,还有更高级的场景。像通知聚合、事务、安全等。其中许多在 Jim Webber 的书中都有很好的描述:

    REST in Practice: Hypermedia and Systems Architecture

    关于rest - 将 RPC 接口(interface)转换为 REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969623/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com