禁用某些服务的动态Web API

问题描述 投票:0回答:2

我下载了ASP Boilerplate模板,我试图禁用某些动态WebAPI的创建。我在https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API上阅读了文档但我找不到在模板中禁用它的位置。我使用的是.NET Core + Angular4模板。

aspnetboilerplate
2个回答
3
投票

您可以使用属性[RemoteService(false)]来禁用应用程序服务的动态Web API的创建。您还可以在应用程序服务的方法上使用此属性。

 [RemoteService(false)]
 public interface IRoleAppService : IAsyncCrudAppService<RoleDto, int, PagedResultRequestDto, CreateRoleDto, RoleDto>
 {
        Task<ListResultDto<PermissionDto>> GetAllPermissions();
 }

https://aspnetboilerplate.com/Pages/Documents/Dynamic-Web-API#enabledisable


虽然[RemoteService]是禁用它的最简单方法,但您可以使用以下代码进行高级操作。

Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
    .ForAll<IApplicationService>(Assembly.GetExecutingAssembly(), "app")
    .ForMethods(builder =>
    {
        if (builder.Method.IsDefined(typeof(MyIgnoreApiAttribute)))
        {
            builder.DontCreate = true;
        }
    })
    .Build();

0
投票

我正在使用使用EF Core的apsnetboiler零模板。 Core使用稍微不同的配置模块:

https://aspnetboilerplate.com/Pages/Documents/AspNet-Core#application-services-as-controllers

我想使用动态创建的实体CRUD方法,但不想公开删除和更新方法。所以,我只是在app服务类中覆盖它们,并将[RemoteService(False)]属性添加到重写的方法中。这可以防止它们在api中生成。

© www.soinside.com 2019 - 2024. All rights reserved.