繁体   English   中英

MVC 中的 Web API 和 REST API 到底有什么区别?

[英]What exactly is the difference between Web API and REST API in MVC?

我对 REST API 有一点了解。 据我所知,它用于处理 HTTP 服务(GET、POST、PUT、DELETE)。

当我添加 Web API 控制器时,它为我提供了一些基本方法,例如:

 public class Default1Controller : ApiController
    {
        // GET api/default1
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/default1/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/default1
        public void Post([FromBody]string value)
        {
        }

        // PUT api/default1/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/default1/5
        public void Delete(int id)
        {
        }
    }

所以我的问题是:Web API 和 REST API 有什么区别?

根据 REST 的定义,上面的代码是基于 REST 的,那么 MVC 中的普通 Web API 是什么? 我有点困惑,因为有些人说您使用带有 REST 的 Web API?

请提供对他们两个更好的理解。

我和我们这么多人一直在那里。 有很多令人困惑的词,比如Web API,REST,RESTful,HTTP,SOAP,WCF,Web Services ......以及围绕这个主题的更多内容。 但我将简要解释你所问过的那些。

休息

它既不是API也不是框架。 这只是一个建筑概念。 你可以在这里找到更多细节。

REST风格

我没有在任何地方遇到RESTful的任何正式定义。 我相信它只是API的另一个流行语,可以说它们是否符合REST规范

编辑:还有另一个趋势开源倡议OpenAPI规范(OAS) (以前称为Swagger)来标准化REST API。

Web API

它在用于编写HTTP API的开源框架中。 这些API可以是RESTful也可以不是。 我们编写的大多数HTTP API都不是RESTful。 该框架实现了HTTP协议规范,因此您可以听到诸如URI,请求/响应头,缓存,版本控制,各种内容类型(格式)之类的术语。

注意:我没有故意使用术语Web服务,因为它是一个令人困惑的术语。 有些人使用它作为通用概念,我更喜欢称它们为HTTP API。 微软有一个名为“Web服务”的实际框架,如Web API。 但它实现了另一个名为SOAP的协议。

ASP.NET Web API是一个框架,可以轻松构建可覆盖广泛客户端的HTTP服务,包括浏览器和移动设备。 ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。

休息

当您通过Internet公开公共API以处理数据的CRUD操作时,REST的最佳位置。 REST专注于通过单个一致的接口访问命名资源。

肥皂

SOAP带来了它自己的协议,并专注于将应用程序逻辑(而不是数据)作为服务公开。 SOAP公开了操作。 SOAP专注于访问命名操作,每个操作都通过不同的接口实现一些业务逻辑。

虽然SOAP通常被称为“Web服务”,但这是用词不当。 SOAP几乎没有与Web有关。 REST提供基于URI和HTTP的真正“Web服务”。

参考: http//spf13.com/post/soap-vs-rest

最后:他们可以指的是REST与RPC见: http//encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both /

参见: 掌握ASP.NET Web API (由MalendraHurbuns,Mithun Pattankar提供)以获取更多信息。

REST架构风格是多种网络架构的组合:

  • 数据流样式:
    • 管道和过滤器
    • 均匀的管道和过滤器
  • 复制样式:
    • 复制的存储库
    • 高速缓存
  • 分层样式:
    • 客户端服务器
    • 分层系统和分层客户端服务器
    • 客户无状态服务器
    • 客户端缓存 - 无状态 - 服务器
    • 分层客户端缓存 - 无状态 - 服务器
    • 远程会话
    • 远程数据访问
  • 手机代码样式:
    • 虚拟机
    • 远程评估
    • 代码点播
    • 分层码点播客户端缓存 - 无状态 - 服务器
    • 移动代理
  • 点对点风格:
    • 基于事件的集成
    • C2
    • 分布式对象
    • 破坏分布式对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM