有人问我Web API和RESTful服务之间的区别,这对我来说也是一个有趣的问题。从我的角度来看,RESTful 服务和 Web API 之间唯一可能的区别可以被认为是 RESTful 服务本质上是无状态的(尽管我们可以使用 cookie(,而本质上无状态的概念不适用于 Web API,因为我们可以使用会话(不能在 RESTful 服务中使用(。
但是,我决定发布这个问题,看看是否有任何其他潜在的差异将这两种技术区分开来。
您正在比较编程框架和设计范例。这不是一个公平的比较。
WebAPI 是一个 Web 服务应用程序框架。您可以使用它实现 REST API,但您不必这样做。你也可以在其中编写RPC风格的服务,或者实际上只是任何类型的应用程序,它使用HTTP但不(严格(遵守REST原则。
REST只是一种架构风格。它不是任何协议或框架。您可以使用许多框架和编程语言实现 RESTful 服务。Web API 只是 .NET 的其中之一。
确实,RESTful 服务是无状态的。以下是主要 REST 约束的列表:
- 客户端-服务器
- 无 国籍
- 缓存
- 统一的接口
- 分层系统
- 按需编码
有关REST架构的更多详细信息,我在此链接下推荐Roy Fielding的出版物。
回到你的疑问,你可以用 Web API 框架实现 RESTful 服务,但前提是你遵循 REST 架构风格的规则。