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?我有点困惑,因为有些人说您使用 Web API with REST?
请提供对它们的更好理解。
ASP.NET Web API 是一个框架,可以轻松构建可访问广泛客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是在 .NET Framework 上构建 RESTful 应用程序的理想平台。
休息
REST 的甜蜜点是当您通过 Internet 公开 public API 来处理数据的 CRUD 操作时。 REST 专注于通过单一一致的接口访问命名资源。
肥皂
SOAP 带来了自己的协议,并专注于将应用程序逻辑(而非数据)片段公开为服务。 SOAP 公开操作。 SOAP 专注于访问命名操作,每个操作通过不同的接口实现一些业务逻辑。
虽然 SOAP 通常被称为“网络服务”,但这是一个用词不当的说法。 SOAP 与 Web 几乎没有任何关系。 REST 提供真正基于 URI 和 HTTP 的“Web 服务”。
参考:http://spf13.com/post/soap-vs-rest
最后:
他们可能指的是 REST vs. RPC
看到这个:
http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/
我去过那里,就像我们很多人一样。有很多令人困惑的词,例如 Web API、REST、RESTful、HTTP、SOAP、WCF、Web 服务……以及更多围绕该主题的词。但是我只对你问的那些做简单的解释。
休息
它既不是 API 也不是框架。这只是一个建筑概念。您可以找到更多详细信息 here or tutorials here https://restfulapi.net/
RESTful
我在任何地方都没有遇到 RESTful 的任何正式定义。我相信这只是 API 是否遵守 REST specifications.
的另一个流行语
编辑:还有另一个流行的开源计划 OpenAPI Specification (OAS)(以前称为 Swagger)来标准化 REST API。
网页API
它在一个用于编写 HTTP API 的开源框架中。这些 API 可以是 RESTful 也可以不是。我们编写的大多数 HTTP API 不是 RESTful。该框架实现了 HTTP 协议规范,因此您会听到 URI、request/response headers、缓存、版本控制、各种内容类型(格式)等术语。
注意:我没有刻意使用 Web 服务这个术语,因为它是一个容易混淆的术语。有些人将其用作通用概念,我更喜欢称它们为 HTTP APIs。微软有一个名为 'Web Services' 的实际框架,如 Web API。但是它实现了另一个称为 SOAP 的协议。
对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?我有点困惑,因为有些人说您使用 Web API with REST?
请提供对它们的更好理解。
ASP.NET Web API 是一个框架,可以轻松构建可访问广泛客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是在 .NET Framework 上构建 RESTful 应用程序的理想平台。
休息
REST 的甜蜜点是当您通过 Internet 公开 public API 来处理数据的 CRUD 操作时。 REST 专注于通过单一一致的接口访问命名资源。
肥皂
SOAP 带来了自己的协议,并专注于将应用程序逻辑(而非数据)片段公开为服务。 SOAP 公开操作。 SOAP 专注于访问命名操作,每个操作通过不同的接口实现一些业务逻辑。
虽然 SOAP 通常被称为“网络服务”,但这是一个用词不当的说法。 SOAP 与 Web 几乎没有任何关系。 REST 提供真正基于 URI 和 HTTP 的“Web 服务”。
参考:http://spf13.com/post/soap-vs-rest
最后: 他们可能指的是 REST vs. RPC 看到这个: http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/
我去过那里,就像我们很多人一样。有很多令人困惑的词,例如 Web API、REST、RESTful、HTTP、SOAP、WCF、Web 服务……以及更多围绕该主题的词。但是我只对你问的那些做简单的解释。
休息
它既不是 API 也不是框架。这只是一个建筑概念。您可以找到更多详细信息 here or tutorials here https://restfulapi.net/
RESTful
我在任何地方都没有遇到 RESTful 的任何正式定义。我相信这只是 API 是否遵守 REST specifications.
的另一个流行语编辑:还有另一个流行的开源计划 OpenAPI Specification (OAS)(以前称为 Swagger)来标准化 REST API。
网页API
它在一个用于编写 HTTP API 的开源框架中。这些 API 可以是 RESTful 也可以不是。我们编写的大多数 HTTP API 不是 RESTful。该框架实现了 HTTP 协议规范,因此您会听到 URI、request/response headers、缓存、版本控制、各种内容类型(格式)等术语。
注意:我没有刻意使用 Web 服务这个术语,因为它是一个容易混淆的术语。有些人将其用作通用概念,我更喜欢称它们为 HTTP APIs。微软有一个名为 'Web Services' 的实际框架,如 Web API。但是它实现了另一个称为 SOAP 的协议。