ABP文档 - Web Api 控制器
文档目录
本节内容:
- 简介
- AbpApiController 基类
- 本地化
- 其它
- 过滤
- 审计日志
- 授权
- 防伪造过滤
- 工作单元
- 结果包装和异常处理
- 结果缓存
- 验证
- 模块绑定器
简介
通过Abp.Web.Api的nuget包,把ABP集成到Asp.net Web Api 控制器里。你可以像之前做的那样创建平常的Asp.net Web Api控制器,依赖注入会很好地为这些平常的ApiController工作,但你要把你的控制器继承于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");//... } }
你先要设置LocalizationSourceName,L方法才能正确工作,你可以在你自己的基api控制器类里设置它,这样就不用再为每个api控制器重复设置。
其它
你可以使用预先注入的AbpSession、EventBus、PermissionManager、PermissionChecker、SettingManager、FeatureManager、FeatureChecker、LocalizationManager、Logger、CurrentUnitOfWork等基类属性。
过滤
ABP为所有的Asp.net Web Api预置了一些过滤,它们被默认地添加到所有控制器的所有Action里。
审计日志
AbpApiAuditFilter用来与审计日志系统结合,它在默认情况下记录所有对所有Action请求(如果审计没有被禁用),你可以用Audited和DisableAuditing特性控制Action和控制器的审计日志。
授权
你可以为你的api控制器或Action使用AbpApiAuthorize特性,阻止未授权用户访问它们,例如:
public class UsersController : AbpApiController {[AbpApiAuthorize("MyPermissionName")] public UserDto Get(long id){//... } }
你可以为Action或控制器定义AllowAnonymous特性,废止认证/授权。AbpApiController也定义了一个在定义里检查许可的快捷方法IsGranted。
更多信息查看授权文档。
防伪造过滤
AbpAntiForgeryApiFilter自动保护Asp.net Web Api的Action(包括动态Web Api),阻止来自CSRF/XSRF的POST、PUT和DELETE请求攻击。更多信息查看CSRF文档。
工作单元
AbpApiUowFilter用来结合工作单元系统,在一个Action执行前自动开始一个工作单元,并在Action执行结束后完成工作单元(如果没有异常抛出)。
你可为一个Action使用UnitOfWork特性,控制它的工作单元行为,你也可以在启动配置里为所有Action修改默认的工作单元特性。
结果包装和异常处理
当Web Api的Action成功执行后,ABP不会默认地自动包装它,但ABP会处理并包装异常,如有需要,你可以给Action和控制器添加WrapResult/DontWrapResult,你可以从启动配置里修改这个默认行为(使用Configuration.Modules.AbpWebApi()....)。关于结果包装的更多信息,查看AJAX文档。
结果缓存
ABP为Web Api请求响应里添加了Cache-Control头(no-cache,no-store),因此,它甚至会阻止浏览器对GET请求响应的缓存,不过可以通过配置禁用这个行为。
验证
AbpApiValidationFilter自动检查ModelState.IsValid并在检测到非法时阻止Action执行。实现输入DTO的验证在验证文档里进行了描述。
模块绑定器
AbpApiDateTimeBinder用来标准化通过Clock.Normalize方法输入的DateTime(和Nullable<DateTime>)。
kid1412附:英文原文:http://www.aspnetboilerplate.com/Pages/Documents/Web-API-Controllers
转载于:https://www.cnblogs.com/kid1412/p/6012020.html
ABP文档 - Web Api 控制器相关推荐
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ABP理论学习之Web API控制器(新增)
返回总目录 本篇目录 介绍 AbpApiController基类 本地化 审计日志 授权 工作单元 其他 介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器 ...
- ABP官方文档翻译 5.1 Web API控制器
ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 A ...
- Word/Excel文档操作API哪家强?一张表带你了解Aspose和Spire系列全功能对比
Microsoft Office是微软公司的一个文字处理器应用程序,作为办公软件必不可少的神器之一,其中Word.Excel是日常工作中常用的文档管理工具.目前,Aspose系列和Spire系列是文档 ...
- 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具
谷歌又有了大动作.在大洋彼岸的谷歌Cloud Next conference大会上,谷歌一口气发布了多款AI新品和工具,主要包括: 端到端的AI平台 用于处理视频和表格数据的AutoML Tables ...
- Axure经典案例下载(crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板)
crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板 作品展示2 作品展示3 作品展示4 交互演示地址及下载链接 https://www.pmdaniu.com/storages/ ...
- python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...
资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...
- 1、ABP 文档介绍
ABP 文档介绍 Quick Start Getting Started Architecture Infrastructure ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还 ...
- Jvectormap中文帮助文档(API)
关于Jvectormap JVectorMap 是一个优秀的.兼容性强的用来显示矢量地图的jQuery插件.它使用 SVG 在Firefox 3 or 4, Safari, Chrome, Opera ...
最新文章
- 统一同一物理主机上VMware虚拟出的不同操作系统如何通信
- php建站静态,php网站如何生成静态
- 2009年下半年信息系统项目管理师上午试题分析与解答文档
- SAP gateway里一个控制缓存行为的开关 User parameter /UI2/PAGE_CACHE_OFF
- 查看修改Linux隐藏文件的四种简便方法
- 最惨2019:超300家创业公司死亡名录
- Chrome 浏览器将登陆 Fuchsia OS
- 如何创建一个<style> tag with Javascript?
- 在pytorch中expand_dim
- 命令行模式下导入导出MySQL数据库
- 用php的ob_start()控制浏览器cache
- 应急响应-Linux入侵排查
- office2013 安装易用宝不成功
- python矩阵连乘_python动态规划解决矩阵连乘
- 刨根究底字符编码之—UTF-16编码方式
- 实习每日总结_20161222
- 什么是埃博拉免疫T-细胞?
- 可观测白皮书 part2/2
- win7+Linux(centos 7.2)双系统--总结
- 怎么迅速计算WPS文档中字数