介绍本文为个人对WebApi的回顾无参考价值。本文内容:Rest和UnitOfWork创建WebAPi的流程IOC-Unity的使用MEF自定义URLBase认证和Token自定义权限日志NLogOData的使用Owin自宿主的使用代码地址:https://github.com/ ...
介绍
本文为个人对WebApi的回顾无参考价值。
本文内容:
- Rest和UnitOfWork
- 创建WebAPi的流程
- IOC-Unity的使用
- MEF
- 自定义URL
- Base认证和Token自定义权限
- 日志NLog
- OData的使用
- 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模式好处:
- 集中了数据和web服务访问逻辑
- 支持单元测试
- 提供了灵活架构以适应整个应用设计的扩展
Unit of Work的职责:
- 管理事务
- 有序化数据的插入、删除、更新操作
- 预防重复的更新。
使用Unit of Work模式的好处是能够让你更关注于业务逻辑。
创建WebAPI项目流程
- 创建DAL
- 创建Repository和Unit of Work
- 创建Entities
- 创建Services
- 创建WebAPI
- 创建IOC
- 使用MEF解耦依赖注册关系
- 自定义路由
- 创建Exception处理和日志功能
- 创建单元测试
Questions:
- Context.Entry(entity).State = EntityState.Modified;
- IQueryable
- UnitOfWork继承IDisposable
Cause:他需要释放链接
- DbEntityValidationException e.EntityValidationErrors
- GC.SuppressFinalize
IOC – Unity
Unity 是轻量级、可扩展的依赖注入容器,支持构造函数注入、属性注入和方法调用注入。
Unity的优势:
- 提供简单的对象创建,特别是分层对象结构和依赖。
- 提供抽象需求。允许开发人员在运行时或者配置中指定依赖。
- 增加灵活性,推迟组件配置到容器中
- 它有一个本地服务能力。允许用户保存或缓存容器。这个特别适用于Asp.Net web应用程式中,持久化Session和application容器
创建流程:
- 安装Unity for MVC
- 创建Bootstrapper.cs文件
- Initialise()
注册对应反转依赖
- Application_Start()
Bootstrapper.Initialise();
2. 构造函数注入
private IEmployeeService _employeeService; public UserController(IEmployeeService employeeService) { _employeeService = employeeService; }
原标题:重温ASP.NET WebAPI(二)进阶
关键词:ASP.NET
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。