WebAPI知识点
(一)WebAPI2
WebAPI是给前端提供数据的框架。只管提供数据,数据提供方式为以Restful Http格式。
WebAPI提供的语义场景:
Post请求:提交数据(以Post的方式提交http请求,数据库得到的插入数据)
Get请求:查询数据(有无参/有参两种形式,如Get age>20,即是有参)
Put请求:修改数据
Delete请求:删除数据
Restful风格(语义)的请求方式:Function名中必须包含请求关键字。
如:Get请求—Getxxx(),Put请求—Putxxx()
(二)创建WebAPI项目
创建WebAPI项目会默认勾选MVC框架(WebAPI项目中包括Controller和model,没有view。项目中view起提示页面的作用)
新建项目中默认有两个Controller:
- HomeController : Controller(基类属于MVC Controller)
是MVC控制器 - ValuesController :ApiController(基类属于WebAPI Controller)
是WebAPI控制器
在APIcontroller中
public class ValuesController : ApiController
{
// GET api/values——以get请求values会进入该方法
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5——以get请求values(带参数)会进入此方法
public string Get(int id)
{
return "value";
}
// POST api/values——以post请求values(无参)进入该方法
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
- 利用get请求获取数据:
运行代码,地址栏显示“localhost:54014”。此时输入“localhost:54014/api/values/1”,会调用有参get方法 Get(int id)
//前缀“api”表示使用webapi接口;
//“values”决定使用哪个控制器;
//“1”即地址栏参数决定调用哪个方法
新建API配置:
在controller文件夹下添加WebAPI2控制器,新控制器必须保留“controller”后缀,项目中控制器名不允许重复。
配置路由:
AppStart————RouteConfig 设置MVC路由;WebApiConfig 设置WEBAPI路由
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", //路由模板,规定地址栏规则为:api/controller名/id名。api路由默认要加一个前缀,避免和MNVC路由冲突
defaults: new { id = RouteParameter.Optional }//RouteParameter.Optional的意思是:表示id是可选值
);
控制器里可以被调用的方法叫Action(行为)
*在地址栏中,?代表的是QueryString查询表达式。比如https://www.baidu.com/s?wd=“百度一下”
因此,给页面传数据内容,第一个方法就是QueryString