一、相关概念和简单API的使用
1. 什么是ASP.NET-WebAPI?
ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是一种用于在 .NET Framework 上构建 Restful 应用程序的理想平台。
2. 关于RESTful的理解
REST是英文representational state transfer(表象性状态转变)或者表述性状态转移; Rest是web服务的一种架构风格; 使用HTTP,URI,XML,json,HTML等广泛流行的标准和协议; 轻量级,跨平台,跨语言的架构设计; 它是一种设计风格,不是一种标准,是一种思想。
2.1 Rest架构的主要原则:
事务为对象,资源有统一,形式有多样(xml、json等) 每个资源都有一个唯一的资源标识符。 同一个资源具有多种表现形式(xml,json等)。 对资源的各种操作不会改变资源标识符。 所有的操作都是无状态的。 符合REST原则的架构方式即可称为RESTful。
####2.2 为什么会出现restful?
在Restful之前我们写一个web请求,格式通常是这样的:
- 根据用户id查询商品
- 新增商品
- 修改商品
- 删除商品
Restful用法:
- GET 根据用户id查询商品
- POST 新增商品
- PUT 修改商品
- DELETE 删除商品
restful风格其实就是根据请求的类型(get、post、put、delete)来匹配对应的方法。
3. WebAPI2的基本使用与路由
3.1 为什么要使用WebAPI的特性路由?
在实际开发中,http请求的方法可能是相同的(比如都是post请求),而且请求的参数也相同。这个问题就麻烦。因为遵照Restful风格无法解决。大家可能想到自定义一个路由,比如增加action,可以,但是在webAPI里面是不提倡的。
3.2 解决方法
首先,我们启动特性路由。 就可以使用特性路由。
3.3 Post请求的规范
【1】 无参数的POSt请求
和Get方式请求相同。只不过在客户端$.get和$.post区别。同时只需要添加[httpPost]标记特性即可。
【2】 一个参数的POST请求
和Get方式不一样,动作方法参数上面必须添加[FromBody]标记,否则访问不到!同时WebAPI请求传递的参数,也有特定的格式。而这种格式并不是我们常见的key-value格式。WebAPI模型绑定器寻找的时候,并是按照key去查找。而且空字符串。