Browse Source
Merge pull request #11461 from abpframework/liangshiwei/clientproxy
Enhance AbpHttpClientProxyServiceConvention
pull/11463/head
maliming
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
19 additions and
0 deletions
-
framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs
-
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
-
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
-
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
-
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs
|
|
|
@ -51,6 +51,12 @@ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention |
|
|
|
|
|
|
|
foreach (var controller in GetClientProxyControllers(application)) |
|
|
|
{ |
|
|
|
if (ShouldBeRemove(application, controller)) |
|
|
|
{ |
|
|
|
application.Controllers.Remove(controller); |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
controller.ControllerName = controller.ControllerName.RemovePostFix("ClientProxy"); |
|
|
|
|
|
|
|
var controllerApiDescription = FindControllerApiDescriptionModel(controller); |
|
|
|
@ -66,6 +72,13 @@ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual bool ShouldBeRemove(ApplicationModel application, ControllerModel controllerModel) |
|
|
|
{ |
|
|
|
return application.Controllers |
|
|
|
.Where(x => x.ControllerType != controllerModel.ControllerType) |
|
|
|
.Any(x => FindAppServiceInterfaceType(x) == FindAppServiceInterfaceType(controllerModel)); |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual void ConfigureClientProxySelector(ControllerModel controller) |
|
|
|
{ |
|
|
|
RemoveEmptySelectors(controller.Selectors); |
|
|
|
|
|
|
|
@ -25,6 +25,7 @@ |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Caching.StackExchangeRedis\Volo.Abp.Caching.StackExchangeRedis.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.Client\Volo.Abp.AspNetCore.Mvc.Client.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Authentication.OpenIdConnect\Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.Web\Volo.Abp.Http.Client.Web.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Serilog\Volo.Abp.AspNetCore.Serilog.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.IdentityModel.Web\Volo.Abp.Http.Client.IdentityModel.Web.csproj" /> |
|
|
|
|
|
|
|
@ -29,6 +29,7 @@ using Volo.Abp.AutoMapper; |
|
|
|
using Volo.Abp.Caching; |
|
|
|
using Volo.Abp.Caching.StackExchangeRedis; |
|
|
|
using Volo.Abp.Http.Client.IdentityModel.Web; |
|
|
|
using Volo.Abp.Http.Client.Web; |
|
|
|
using Volo.Abp.Identity.Web; |
|
|
|
using Volo.Abp.Modularity; |
|
|
|
using Volo.Abp.MultiTenancy; |
|
|
|
@ -48,6 +49,7 @@ namespace MyCompanyName.MyProjectName.Web; |
|
|
|
typeof(MyProjectNameHttpApiModule), |
|
|
|
typeof(AbpAspNetCoreAuthenticationOpenIdConnectModule), |
|
|
|
typeof(AbpAspNetCoreMvcClientModule), |
|
|
|
typeof(AbpHttpClientWebModule), |
|
|
|
typeof(AbpAspNetCoreMvcUiBasicThemeModule), |
|
|
|
typeof(AbpAutofacModule), |
|
|
|
typeof(AbpCachingStackExchangeRedisModule), |
|
|
|
|
|
|
|
@ -19,6 +19,7 @@ |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.Client\Volo.Abp.AspNetCore.Mvc.Client.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.AspNetCore.Authentication.OpenIdConnect\Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.IdentityModel.Web\Volo.Abp.Http.Client.IdentityModel.Web.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.Web\Volo.Abp.Http.Client.Web.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Swashbuckle\Volo.Abp.Swashbuckle.csproj" /> |
|
|
|
<ProjectReference Include="..\..\..\..\..\framework\src\Volo.Abp.Http.Client.Web\Volo.Abp.Http.Client.Web.csproj" /> |
|
|
|
|
|
|
|
@ -36,6 +36,7 @@ using Volo.Abp.FeatureManagement; |
|
|
|
using Volo.Abp.Http.Client.IdentityModel.Web; |
|
|
|
using Volo.Abp.Identity; |
|
|
|
using Volo.Abp.Identity.Web; |
|
|
|
using Volo.Abp.Http.Client.Web; |
|
|
|
using Volo.Abp.Modularity; |
|
|
|
using Volo.Abp.MultiTenancy; |
|
|
|
using Volo.Abp.PermissionManagement; |
|
|
|
@ -57,6 +58,7 @@ namespace MyCompanyName.MyProjectName; |
|
|
|
typeof(MyProjectNameHttpApiModule), |
|
|
|
typeof(AbpAspNetCoreAuthenticationOpenIdConnectModule), |
|
|
|
typeof(AbpAspNetCoreMvcClientModule), |
|
|
|
typeof(AbpHttpClientWebModule), |
|
|
|
typeof(AbpAspNetCoreMvcUiBasicThemeModule), |
|
|
|
typeof(AbpAutofacModule), |
|
|
|
typeof(AbpCachingStackExchangeRedisModule), |
|
|
|
|