API

一、HTTP 协议(超文本传输协议)

  • http 协议 版本 1.1

  • http由来 1960年

  • http通讯

  • http原理

  • URL和URI 区别

  • Request 请求报文

  • Response 响应报文

  • HTTP 状态码(重要) 常用的 200(成功) 500(服务器端错误) 404(URL路径错误)

  • HTTP请求方式

      1. get 请求(显示)

      2. post 请求(添加)

      3. put 请求(修改)

      4. delete 请求(删除)

      5. HEAD(在Request-URI所标识的资源后附加新的数据)

      6. TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。

      7. CONNECT:HTTP 1.1协议中预留给能够将连接改为管道方式的代理服务器。

      8. OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。

  • get请和post 区别

    1. get 不安全(显示列表、查询)

    2. post 安全(添加)

二、创建Web API

  • 创建Web API和创建MVC方式相同(在选择方式界面 选择 web api)

    1. 修改项目下 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
      }

 

上一篇:ELF.cs


下一篇:前端实现分页 实现个数据分页函数