用ps做个人网站界面,上海网站建设电话,互联网外包公司有哪些,七台河新闻综合频道节目表返回总目录 本篇目录 介绍AbpApiController基类 本地化审计日志授权工作单元其他介绍 ABP通过Abp.Web.ApiNuget包集成了 ASP.NET Web API控制器。你可以像以往创建Asp.Net Web API控制器那样创建Web API控制器。依赖注入对于有规律的ApiController#xff08;其实就是继承自Ab…返回总目录 本篇目录 介绍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 IRepositoryUser, long _userRepository;public UsersController(IRepositoryUser, long userRepository){_userRepository userRepository;}[UnitOfWork]public virtual ListUserDto 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