你的位置:首页 > 软件开发 > ASP.net > 重温ASP.NET WebAPI(二)进阶

重温ASP.NET WebAPI(二)进阶

发布时间:2016-05-03 16:00:11
介绍本文为个人对WebApi的回顾无参考价值。本文内容:Rest和UnitOfWork创建WebAPi的流程IOC-Unity的使用MEF自定义URLBase认证和Token自定义权限日志NLogOData的使用Owin自宿主的使用代码地址:https://github.com/ ...

重温ASP.NET WebAPI(二)进阶

介绍

本文为个人对WebApi的回顾无参考价值。

本文内容:

  1. Rest和UnitOfWork
  2. 创建WebAPi的流程
  3. IOC-Unity的使用
  4. MEF
  5. 自定义URL
  6. Base认证和Token自定义权限
  7. 日志NLog
  8. OData的使用
  9. Oget='_blank'>win自宿主的使用

代码地址:https://github.com/OtherRuan/Review-Serials

WebApi的几点特性

WebApi 提供了几点特性:

1. 自动匹配HTTP方法

GetMethod(), 惯例上会直接匹配Get的http方法。

Web Api允许方法同时拥有多种type,比如:

        [AcceptVerbs(“Delete”,”Get”)]

        Public HttpResponseMessage MultiMethod();

        MultiMethod可以同时为Delete、Get两种类型的http请求使用

2. Web Api还提供自定义Route的功能,比如定义自己的参数,如下

                [Route(“data/{param1}/{param2}”)]

                Public object GetData(string param1, string param2){}

                请求地址:http://localhost/data/1/2

Route属性有以下5种,用于帮你重定义你的API路由

a)      ActionName: 定义你自己的路由的Action名称

b)      Http Method(httpGet,HttpPost,AcceptVerbs…):  定义你的HTTP方法类型和版本等相关信息

c)       NonAction: 预防当前的Action没有被调用

d)      Route: 自定义路由,可设置参数

e)      RoutePrefix:在controller上定义前缀,Controller下的所有Action路由都会自动带上此前缀

3. HttpClient, HttpRequestMessage, HttpResponseMessage

Https下的Web Api

Https/SSL  是管理计算机互联网消息资源传输安全的协议。先介绍一下两者

Certificate :也就是电子证书,是一种电子签名,它通过绑定公钥来确认用户、设备、服务,以及对应的私钥

Certificate Authority(CA):主要用途是指定哪些URL是可信任的URL

Repository和Unit of Work

Repository模式好处:

  1. 集中了数据和web服务访问逻辑
  2. 支持单元测试
  3. 提供了灵活架构以适应整个应用设计的扩展

Unit of Work的职责:

  1. 管理事务
  2. 有序化数据的插入、删除、更新操作
  3. 预防重复的更新。

使用Unit of Work模式的好处是能够让你更关注于业务逻辑。

创建WebAPI项目流程

  1. 创建DAL
  2. 创建Repository和Unit of Work
  3. 创建Entities
  4. 创建Services
  5. 创建WebAPI
  6. 创建IOC
  7. 使用MEF解耦依赖注册关系
  8. 自定义路由
  9. 创建Exception处理和日志功能
  10. 创建单元测试

Questions:

  1. Context.Entry(entity).State = EntityState.Modified;
  2. IQueryable
  3. UnitOfWork继承IDisposable

Cause:他需要释放链接

  1. DbEntityValidationException e.EntityValidationErrors
  2. GC.SuppressFinalize

IOC – Unity

Unity 是轻量级、可扩展的依赖注入容器,支持构造函数注入、属性注入和方法调用注入。

Unity的优势:

  1. 提供简单的对象创建,特别是分层对象结构和依赖。
  2. 提供抽象需求。允许开发人员在运行时或者配置中指定依赖。
  3. 增加灵活性,推迟组件配置到容器中
  4. 它有一个本地服务能力。允许用户保存或缓存容器。这个特别适用于Asp.Net web应用程式中,持久化Session和application容器

创建流程:

  1. 安装Unity for MVC
  2. 创建Bootstrapper.cs文件
    1. Initialise()

注册对应反转依赖

  1. Application_Start()

Bootstrapper.Initialise();

  2. 构造函数注入

private IEmployeeService _employeeService;    public UserController(IEmployeeService employeeService)    {      _employeeService = employeeService;    }

原标题:重温ASP.NET WebAPI(二)进阶

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。