一、HTTP 协议(超文本传输协议)
-
http 协议 版本 1.1
-
http由来 1960年
-
http通讯
-
http原理
-
URL和URI 区别
-
Request 请求报文
-
Response 响应报文
-
HTTP 状态码(重要) 常用的 200(成功) 500(服务器端错误) 404(URL路径错误)
-
HTTP请求方式
-
get 请求(显示)
-
post 请求(添加)
-
put 请求(修改)
-
delete 请求(删除)
-
HEAD(在Request-URI所标识的资源后附加新的数据)
-
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。
-
CONNECT:HTTP 1.1协议中预留给能够将连接改为管道方式的代理服务器。
-
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。
-
-
get请和post 区别
-
get 不安全(显示列表、查询)
-
post 安全(添加)
-
二、创建Web API
-
创建Web API和创建MVC方式相同(在选择方式界面 选择 web api)
-
修改项目下 App_Start 文件夹中WebApiConfig.cs 文件 将 默认路径 添加 action
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}", //api/控制器名称/方法名称/参数
defaults: new { id = RouteParameter.Optional }
-
-
在Web Api当中搭建三层
-
在Model当中需要写验证模型(先迁移后写验证模型必须更 重新update-database)
-
Model当中的类必须是public 访问修饰符
-
使用EF数据迁移命名之前必须 重新生成解决方案
-
程序包管理控制台中默认项目需要选择 上下文存在的那一层
-
-
1、enable-migrations (生成的Configuration 文件中 将 AutomaticMigrationsEnabled 改成 true) 意思 允许自动迁移
-
2、add-migration init (添加迁移 版本名称)
-
3、update-database (更新数据库)
三、WebApi 和 MVC 控制器的区别
-
Webapi 继承 ApiController (命名空间System.Web.Http) 作用:webapi 无视图
-
MVC 继承的是Controller
四、webapi 返回类型
-
IHttpActionResult 返回类型
五、API分页
例子:
public class StudentDal
{
StudentDbContext db = new StudentDbContext();
public List<Student> show(ref int totalcount,ref int totalpage,int pageindex,int pagesize)
{
IQueryable<Student> quer = db.Students.Include("NClass");
totalcount = quer.Count();
totalpage = Convert.ToInt32(Math.Ceiling(totalcount * 1.0 / pagesize));
return quer.OrderBy(p => p.Sid).Skip((pageindex - 1) * pagesize).Take(pagesize).ToList();
}
}
例子:
StudnetBll bll = new StudnetBll();
[HttpGet]//声明get请求
public IHttpActionResult Show(int pageindex = 2,int pagesize=3)
{
int totalcount = 0;
int totalpage = 0;
var list = bll.show(ref totalcount, ref totalpage, pageindex, pagesize);
var pagelist = new StaticPagedList<Student>(list, pageindex, pagesize, totalcount);
return Json(pagelist);//返回json
}