文档目录

本节内容:

  • 简介
  • 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 控制器相关推荐

  1. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  2. ABP理论学习之Web API控制器(新增)

    返回总目录 本篇目录 介绍 AbpApiController基类 本地化 审计日志 授权 工作单元 其他 介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器 ...

  3. ABP官方文档翻译 5.1 Web API控制器

    ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 A ...

  4. Word/Excel文档操作API哪家强?一张表带你了解Aspose和Spire系列全功能对比

    Microsoft Office是微软公司的一个文字处理器应用程序,作为办公软件必不可少的神器之一,其中Word.Excel是日常工作中常用的文档管理工具.目前,Aspose系列和Spire系列是文档 ...

  5. 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具

    谷歌又有了大动作.在大洋彼岸的谷歌Cloud Next conference大会上,谷歌一口气发布了多款AI新品和工具,主要包括: 端到端的AI平台 用于处理视频和表格数据的AutoML Tables ...

  6. Axure经典案例下载(crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板)

    crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板 作品展示2 作品展示3 作品展示4 交互演示地址及下载链接 https://www.pmdaniu.com/storages/ ...

  7. python3 chm文档下载_python3.7.0官方参考文档 最新api文档 chm_Python教程_源雷技术空间...

    资源名称:python3.7.0官方参考文档 最新api文档 chm 1.新语法特性: PEP 563, 推迟评估类型注释 2.向后不兼容语法更改: async 和 await 现在保留关键字 3.新 ...

  8. 1、ABP 文档介绍

    ABP 文档介绍 Quick Start Getting Started Architecture Infrastructure ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还 ...

  9. Jvectormap中文帮助文档(API)

    关于Jvectormap JVectorMap 是一个优秀的.兼容性强的用来显示矢量地图的jQuery插件.它使用 SVG 在Firefox 3 or 4, Safari, Chrome, Opera ...

最新文章

  1. 统一同一物理主机上VMware虚拟出的不同操作系统如何通信
  2. php建站静态,php网站如何生成静态
  3. 2009年下半年信息系统项目管理师上午试题分析与解答文档
  4. SAP gateway里一个控制缓存行为的开关 User parameter /UI2/PAGE_CACHE_OFF
  5. 查看修改Linux隐藏文件的四种简便方法
  6. 最惨2019:超300家创业公司死亡名录
  7. Chrome 浏览器将登陆 Fuchsia OS
  8. 如何创建一个<style> tag with Javascript?
  9. 在pytorch中expand_dim
  10. 命令行模式下导入导出MySQL数据库
  11. 用php的ob_start()控制浏览器cache
  12. 应急响应-Linux入侵排查
  13. office2013 安装易用宝不成功
  14. python矩阵连乘_python动态规划解决矩阵连乘
  15. 刨根究底字符编码之—UTF-16编码方式
  16. 实习每日总结_20161222
  17. 什么是埃博拉免疫T-细胞?
  18. 可观测白皮书 part2/2
  19. win7+Linux(centos 7.2)双系统--总结
  20. 怎么迅速计算WPS文档中字数

热门文章

  1. Workbench二次开发技术分享
  2. 一些基础的算法知识——《图解算法》
  3. 狂神 Linux 学习笔记
  4. 用html5做一个介绍自己家乡的页面_(近万字)一篇文章带你了解HTML5和CSS3开发基础与应用-适合前端面试必备...
  5. 深入剖析JDK动态代理源码实现
  6. OpenStack | Placement组件
  7. 限速linux c语言,基于Linux系统的流量控制程序的C语言代码
  8. 解释器、编译器与翻译器
  9. 【STM32学习笔记-点亮LED灯】
  10. Leetcode77 组合