![](/img/trans.png)
[英]What is the difference between the way routes are registered with MVC and Web 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也不是框架。 这只是一个建筑概念。 你可以在这里找到更多细节。
我没有在任何地方遇到RESTful的任何正式定义。 我相信它只是API的另一个流行语,可以说它们是否符合REST规范 。
编辑:还有另一个趋势开源倡议OpenAPI规范(OAS) (以前称为Swagger)来标准化REST 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.