我对REST API有一点了解。据我所知,它用于处理HTTP服务(GET POST PUT DELETE)。
当我添加一个webapi控制器时,它为我提供了一些基本方法,如:
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 api的web api吗?
请提供对两者的更好理解。
解决方法
就像我们这么多人一样,我一直在那里。而且我认为我现在了解基础知识。有很多令人困惑的词汇Web API,REST,RESTful,HTTP,SOAP,WCF,Web服务……我相信这个话题还有很多。但我只会提到你问的问题。
休息
它不是API,它只是一个架构概念。请注意,它也不是框架。你可以找到更多细节here。
REST风格
我没有在任何地方遇到任何RESTful的正式定义。但我相信,如果它们符合REST规范,它只是API的另一个流行语。
Web API
它在用于编写HTTP API的开源框架中。这些API可以是RESTful也可以不是。我们编写的大多数HTTP API都不是RESTful。该框架实现了HTTP协议规范,因此您可以使用URI,请求/响应头,缓存,版本控制以及各种内容格式等概念。
请注意,我没有故意使用术语Web服务,因为它是一个令人困惑的术语。有些人使用它作为通用概念,我更喜欢称它们为HTTP API。有一个名为“Web服务”的实际框架,如Web API。但它实现了另一个名为SOAP的协议。