Introduction

ASP.NET Boilerplate is integrated to ASP.NET Web API Controllers via Abp.Web.Api nuget package. You can create regular ASP.NET Web API Controllers as you always do. Dependency Injection properly works for regular ApiControllers. But you should derive your controllers from AbpApiController, which provides several benefits and better integrates to ASP.NET Boilerplate.

ASP.NET样板集成到ASP.NET Web API控制器通过abp.web.api NuGet包。您可以创建普通的ASP.NET Web API控制器总是为你做的。依赖注入为规定的apicontrollers正确的工作。但是你应该得到你abpapicontroller控制器,它提供了几个好处,更好的融入到ASP.NET样板。

AbpApiController Base Class

This is a simple api controller derived from AbpApiController:

public class UsersController : AbpApiController
{ }

Localization

AbpApiController defines L method to make localization easier. Example:

public class UsersController : AbpApiController
{
public UsersController()
{
LocalizationSourceName = "MySourceName";
} public UserDto Get(long id)
{
var helloWorldText = L("HelloWorld"); //...
}
}

You should set LocalizationSourceName to make L method working. You can set it in your own base api controller class, to not repeat for each api controller.

Filters

ABP defines some pre-built filters for AspNet Web API. All of them are added to all actions of all controllers by default.

ABP定义了预建的过滤器ASPNET Web API。所有这些都默认添加到所有控制器的所有操作中。

Audit Logging

AbpApiAuditFilter is used to integrate to audit logging system. It logs all requests to all actions by default (if auditing is not disabled). You can control audit logging using Audited and DisableAuditing attributes for actions and controllers.

abpapiauditfilter是用来整合审计日志系统。默认情况下,它将所有请求记录到所有操作(如果没有禁用审核)。你可以控制审计日志审计和disableauditing使用动作和控制器属性。

Authorization

You can use AbpApiAuthorize attribute for your api controllers or actions to prevent unauthorized users to use your controllers and actions. Example:

你可以使用abpapiauthorize属性为你的API控制器或行动来防止未经授权的用户使用你的控制器和动作。例子:

public class UsersController : AbpApiController
{
[AbpApiAuthorize("MyPermissionName")]
public UserDto Get(long id)
{
//...
}
}

You can define AllowAnonymous attribute for actions or controllers to suppress authentication/authorization. AbpApiController also defines IsGranted method as a shortcut to check permissions in the code.

你可以定义为行动或控制器来抑制认证/授权allowanonymous属性。AbpApiController还定义了权限法作为一种快捷方式来检查代码的权限。

See authorization documentation for more.

Anti Forgery Filter(防伪过滤器)

AbpAntiForgeryApiFilter is used to auto protect ASP.NET Web API actions (including dynamic web api) for POST, PUT and DELETE requests from CSRF/XSRF attacks. See CSRF documentation for more.

abpantiforgeryapifilter用于自动保护ASP.NET Web API的行为(包括动态Web API)后,将删除CSRF / XSRF攻击的请求。更看CSRF的文档。

Unit Of Work

AbpApiUowFilter is used to integrate to Unit of Work system. It automatically begins a new unit of work before an action execution and completes unit of work after action exucition (if no exception is thrown).

You can use UnitOfWork attribute to control behaviour of UOW for an action. You can also use startup configuration to change default unit of work attribute for all actions.

abpapiuowfilter是用来整合的工作系统。它会自动开始一个新的工作单位前一个动作的执行和完成行动后exucition工作单位(如果没有抛出异常)。

你可以使用属性来控制一个动作UnitOfWork UOW的行为。还可以使用启动配置更改所有操作的默认工作单元属性。

Result Wrapping & Exception Handling(结果包装和异常处理)

ASP.NET Boilerplate does not wrap Web API actions by default if action has successfully executed. But it handles and wraps for exceptions. You can add WrapResult/DontWrapResult to actions and controllers if you need. You can change this default behaviour from startup configuration (using Configuration.Modules.AbpWebApi()...). See AJAX document for more about result wrapping.

ASP.NET样板不包Web API的行为默认如果行动已成功执行。但是它处理和包装异常。您可以添加wrapresult / dontwrapresult行动和控制器,如果你需要。您可以更改此默认行为的启动配置(使用配置模块。abpwebapi()…)。有关结果包装的更多内容,请参见Ajax文档。

Result Caching(结果缓存)

ASP.NET Boilerplate adds Cache-Control header (no-cache, no-store) to the response for Web API requests. Thus, it prevents browser caching of responses even for GET requests. This behaviour can be disabled by the configuration.

ASP.NET的模板添加缓存控制头(没有缓存,没有存储)的响应的Web API请求。因此,即使GET请求,它也阻止浏览器缓存响应。可以通过配置禁用此行为。

Validation

AbpApiValidationFilter automatically checks ModelState.IsValid and prevents execution of the action if it's not valid. Also, implements input DTO validation described in the validation documentation.

abpapivalidationfilter modelstate.isvalid防止自动检查和执行行动,如果它不是有效的。因此,输入验证工具验证文件中描述的DTO的。

Model Binders(模型绑定)

AbpApiDateTimeBinder is used to normalize DateTime (and Nullable<DateTime>) inputs using Clock.Normalize method.

ABP框架系列之五十三:(Web-API-Controllers-Web-API-控制器)的更多相关文章

  1. ABP框架系列之三十三:(Module-System-模块系统)

    Introduction ASP.NET Boilerplate provides an infrastructure to build modules and compose them to cre ...

  2. ABP框架系列之十三:(Authorization-授权)

    Introduction Almost all enterprise applications use authorization in some level. Authorization is us ...

  3. ABP框架系列之五十四:(XSRF-CSRF-Protection-跨站请求伪造保护)

    Introduction "Cross-Site Request Forgery (CSRF) is a type of attack that occurs when a maliciou ...

  4. ABP框架系列之五:(Unit Of Work-工作单元)

    Introduction Connection and transaction management is one of the most important concepts in an appli ...

  5. ABP框架系列之五十:(Swagger-UI-集成)

    Introduction From it's web site: "....with a Swagger-enabled API, you get interactive documenta ...

  6. ABP框架系列之五十二:(Validating-Data-Transfer-Objects-验证数据传输对象)

    Introduction to validation Inputs of an application should be validated first. This input can be sen ...

  7. ABP框架系列之四十三:(OData-Integration-OData集成)

    Introduction OData is defined as "An open protocol to allow the creation and consumption of que ...

  8. ABP框架系列之五十一:(Timing-定时)

    Introduction While some applications target a single timezone, some others target to many different ...

  9. 老周的ABP框架系列教程 -》 一、框架理论初步学习

    老周的ABP框架系列教程 -- 一.框架理论初步学习   1. ABP框架的来源与作用简介 1.1  简介 1.1.1       ABP框架全称为"ASP.NET Boilerplate ...

随机推荐

  1. 生产者-消费者(wait-notify实现)

    使用wait/notify来实现生产者消费者时能够达到在线程阻塞的效果,这样就不会出现轮询,然后浪费cpu时间的目的.代码如下:1. 状态类,表示是否已经生产: package com.demo; p ...

  2. 保存数据到Excel中

    调用的方法传值 Export(dt, "Cal_Report_" + DateTime.Now.ToString("yyyyMMddhhmmss") + &qu ...

  3. python导包路径的修改

    1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...

  4. 代码: !AJAX

    http://www.cnblogs.com/cwp-bg/p/7668840.html ajax和jsonp使用总结 2017-10-17 var requestUrl="http://l ...

  5. python3中一句话定义函数

    import math as marea=lambda r:r**2*m.pi #定义一个计算圆的面积的函数area(8) 显示结果 201.06192982974676

  6. python大法好——异常

    ---恢复内容开始--- Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Pyth ...

  7. jmeter 连接 MySql

    1.连接 mysql 驱动包安装下载 1)首先需要安装 mysql 驱动包,下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html 2)下载 ...

  8. 深度学习VS机器学习——到底什么区别

    转自:https://baijiahao.baidu.com/s?id=1595509949786067084&wfr=spider&for=pc 最近在听深度学习的课,老师提了一个基 ...

  9. 群晖上使用kvm(qemu)笔记[原创]

    1.今日偶然逛github里发现一个项目:https://github.com/bsdcpp/synoKVM 下载spk后手工安装,马上可以使用 2.新建XP实例后发现xp的安装盘不认识qemu的vi ...

  10. Beta冲刺——第一天

    beta冲刺:第一天 各个成员今日完成的任务 成员 冯晓.马思远 彭辉.王爽 吴琼.郝延婷 今日完成任务 ·参会人员注册代码规范与功能测试 ·网站的前端代码调整 ·代码规范 ·系统功能测试 ·博客撰写 ...