ABP理论学习之Web API控制器(新增)
返回总目录
本篇目录
- 介绍
- AbpApiController基类
- 本地化
- 审计日志
- 授权
- 工作单元
- 其他
介绍
ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器。你可以像以往创建Asp.Net Web API控制器那样创建Web API控制器。依赖注入对于有规律的ApiController(其实就是继承自AbpApiController的控制器)是有效的。
但是你应该从AbpApiController派生控制器,它提供了许多有用的东西,并且更好地集成到了ABP中。
AbpApiController基类
下面是一个派生于AbpApiController的简单api控制器:
public class UsersController : AbpApiController
{}
本地化
AbpApiController定义了L方法使得本地化更为简单。例子:
public class UsersController : AbpApiController
{public UsersController(){LocalizationSourceName = "MySourceName";}public UserDto Get(long id){var helloWorldText = L("HelloWorld");//...}
}
要使L方法生效,必须设置LocalizationSourceName。你可以在自己的api控制器基类中设置而不用在每个api控制器中都重复设置。
审计日志
审计日志不会为api控制器自动记录。如果你要为api控制器记录日志的话,应该在控制器或者它的action方法上声明Audited特性。请查看审计日志获取更多信息。
授权
你可以为api控制器或者action方法使用AbpApiAuthorize特性来阻止未授权的用户使用控制器和action方法。例子:
public class UsersController : AbpApiController
{[AbpApiAuthorize("MyPermissionName")]public UserDto Get(long id){//...}
}
AbpApiController也定义了检查权限的IsGranted方法作为快捷方式。请查看授权一节获取更多信息。
工作单元
Web API的action方法默认不是工作单元。例如,如果你需要在action方法中打开数据库连接,就需要像下面那样声明UnitOfWork特性:
public class UsersController : AbpApiController
{private readonly IRepository<User, long> _userRepository;public UsersController(IRepository<User, long> userRepository){_userRepository = userRepository;}[UnitOfWork]public virtual List<UserDto> Users(string filter){var users = _userRepository.GetAll().Where(u => u.UserName.StartsWith(filter)).ToList();//...}
}
这里我们声明了UnitOfWork特性。因为仓储的 GetAll()方法返回了 IQueryable,而当它使用 ToList()方法(由于IQueryable的延迟执行)时需要一个打开的数据库连接,所以这里需要声明该特性。注意该action方法应该声明为virtual(否则拦截无法工作)。
请查看工作单元获取更多。
其他
你还可以使用预注入的 AbpSession, EventBus, PermissionManager, PermissionChecker, SettingManager, FeatureManager, FeatureChecker, LocalizationManager, Logger, CurrentUnitOfWork等基属性以及更多。
要了解以上属性,请查阅其他相应博客。
转载于:https://www.cnblogs.com/farb/p/ABPWebAPI.html
ABP理论学习之Web API控制器(新增)相关推荐
- ABP文档 - Web Api 控制器
文档目录 本节内容: 简介 AbpApiController 基类 本地化 其它 过滤 审计日志 授权 防伪造过滤 工作单元 结果包装和异常处理 结果缓存 验证 模块绑定器 简介 通过Abp.Web. ...
- ABP官方文档翻译 5.1 Web API控制器
ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 A ...
- Web Api控制器
Web Api控制器 前言 一.Web应用程序项目 1.MVC控制器 (1)新增项目 (2)项目结构截图 (3)项目引用截图 (4)自带控制器代码及路由配置 (5)新增MVC控制器 2.Web API ...
- ASP.NET Web API 控制器创建过程
前言 本来这篇随笔应该是在上周就该写出来发布的,由于身体跟不上节奏感冒发烧有心无力,这种天气感冒发烧生不如死,也真正的体会到了什么叫病来如山倒,病去如抽丝.这两天状态才好了一点,让我理解了什么才是革命 ...
- abp构建Web API服务
构建动态Web API控制器 ABP可以自动地为应用层生成Web API 层.比如说我们之前创建的应用层: namespace Noah.ChargeStation.Application.Citie ...
- 【ASP.NET Web API教程】2.3.3 创建Admin控制器
原文:[ASP.NET Web API教程]2.3.3 创建Admin控制器 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 3 ...
- Web APi之控制器选择Action方法过程(九)
前言 前面我们叙述了关于控制器创建的详细过程,在前面完成了对控制器的激活之后,就是根据控制器信息来查找匹配的Action方法,这就是本节要讲的内容.当请求过来时首先经过宿主处理管道然后进入Web AP ...
- ASP.NET MVC4中调用WEB API的四个方法
当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各种客户端去使用服务已经是十分普遍的做法.就.NET而言,目前提供了Remoting,WebService和WCF服务,这都能开发出功能十分强 ...
- ABP理论学习之工作单元(Unit of Work)
本篇目录 公共连接和事务管理方法 ABP中的连接和事务管理 仓储类 应用服务 工作单元 工作单元详解 关闭工作单元 非事务的工作单元 工作单元方法调用其它 工作单元作用域 自动保存 IReposito ...
最新文章
- flink 本地_Flink原理Apache Flink漫谈系列 State
- Java黑皮书课后题第7章:**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入0表示结束
- 某小型校园网规划与设计要点(课程报告)
- 使用TA-Lib在vn.trader上开发CTA交易策略
- 费诺码设计matlab,费诺编码的matlab实现.doc
- New Monday
- STM32——红外遥控器实验
- 独家对话 RT-Thread 创始人熊谱翔:国产操作系统厚积而薄发 | 人物志
- 2012-2013最新泰晤士报和QS世界大学排名前100名单对比
- Enterprise Architect Professional Edition
- Python下载库pip pygame
- 网页另存word分页
- Unity3D接入第三方插件之微信登录安卓SDK
- python批量改文件名,截取原文件名的一部分
- 全国计算机等级考试一级大纲,全国计算机等级考试大纲(一级WIN)
- 曾经的中国互联网:多少巨头销声匿迹
- SQL数据导入导出语句大全[英文部分比较全面]
- mysql serial 类型_Mysql自增类型serial
- 公司最实用的软件——综合办公管理系统
- 通配符的使用方法(初学)
热门文章
- python 0o_Python 中的比较:is 与 ==
- 渲染服务器位置,如何用服务器做渲染
- java分布式锁工具类_java 通过redis实现分布式锁
- dell服务器T100无法进入系统,DELL服务器开机Alert!Cover was previously removed F1
- python安装requests模块失败_No module named quot;Cryptoquot;,如何安装Python三方模块Crypto...
- leetcode226 反转二叉树
- ccpc河北大学生程序设计竞赛dp小总结
- cmake生成Win64位工程
- Ubuntu通过可视化界面配置 查找IP地址不存在的解决办法
- 使用引用的方式交换数据的数值