【问题标题】:Web API vs. RESTful servicesWeb API 与 RESTful 服务
【发布时间】:2017-02-05 10:00:52
【问题描述】:

有人问我 Web API 和 RESTful 服务之间的区别,这对我来说也是一个有趣的问题。在我看来,RESTful 服务和 Web API 之间唯一可能的区别可以认为是 RESTful 服务本质上是无状态的(尽管我们可以使用 cookie),而本质上无状态的概念不适用于 Web API因为我们可以使用会话(不能在 RESTful 服务中使用)。

但是,我决定发布这个问题,看看是否还有其他潜在差异可以将这两种技术区分开来。

【问题讨论】:

    标签: web-services rest asp.net-web-api2


    【解决方案1】:

    您正在比较编程框架和设计范例。这不是一个公平的比较。

    Web API 是一个 Web 服务应用程序框架。您可以使用它实现一个 REST API,但您没有必须。您还可以在其中编写 RPC 样式的服务,或者实际上只是任何类型的与 HTTP 通信但不(严格)遵守 REST 原则的应用程序。

    【讨论】:

    • 是的,这似乎是对的,但您认为用 Web API 编写的 RESTful 接口(因为它固有地支持会话/cookie)不一定是无状态的?
    • 好吧,结论就是如你所说,设计理念一定不能和开发环境混在一起。 :)
    • 就是这样。该框架允许您使用会话很好。请注意,如果您在 Web 服务中使用它们,从技术上讲,这不再是 REST 服务。
    【解决方案2】:

    REST 只是一种架构风格。它不是任何协议或框架。您可以使用许多框架和编程语言来实现 RESTful 服务。 Web API 只是 .NET 的其中之一。

    RESTful 服务确实是无状态的。 以下是主要 REST 约束的列表:

    • 客户端-服务器
    • 无状态
    • 缓存
    • 统一界面
    • 分层系统
    • 按需编码

    有关 REST 架构的更多详细信息,我推荐 Roy Fielding 在 link 下的出版物。

    回到你的疑惑,你可以用 Web API 框架实现 RESTful 服务,但前提是你必须遵循 REST 架构风格的规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 2023-04-06
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2017-05-24
      相关资源
      最近更新 更多