diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln
index 667421e14e..42df38e020 100644
--- a/framework/Volo.Abp.sln
+++ b/framework/Volo.Abp.sln
@@ -389,6 +389,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Threading.Tests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Auditing.Contracts", "src\Volo.Abp.Auditing.Contracts\Volo.Abp.Auditing.Contracts.csproj", "{508B6355-AD28-4E60-8549-266D21DBF2CF}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Http.Client.Web", "src\Volo.Abp.Http.Client.Web\Volo.Abp.Http.Client.Web.csproj", "{F7407459-8AFA-45E4-83E9-9BB01412CC08}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1159,6 +1161,10 @@ Global
{508B6355-AD28-4E60-8549-266D21DBF2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{508B6355-AD28-4E60-8549-266D21DBF2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{508B6355-AD28-4E60-8549-266D21DBF2CF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F7407459-8AFA-45E4-83E9-9BB01412CC08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F7407459-8AFA-45E4-83E9-9BB01412CC08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F7407459-8AFA-45E4-83E9-9BB01412CC08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F7407459-8AFA-45E4-83E9-9BB01412CC08}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1355,6 +1361,7 @@ Global
{40C6740E-BFCA-4D37-8344-3D84E2044BB2} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{7B2FCAD6-86E6-49C8-ADBE-A61B4F4B101B} = {447C8A77-E5F0-4538-8687-7383196D04EA}
{508B6355-AD28-4E60-8549-266D21DBF2CF} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
+ {F7407459-8AFA-45E4-83E9-9BB01412CC08} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5}
diff --git a/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xml b/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xsd b/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/framework/src/Volo.Abp.Http.Client.Web/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj b/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj
new file mode 100644
index 0000000000..d7651c7b6d
--- /dev/null
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+ net6.0
+ Volo.Abp.Http.Client.Web
+ Volo.Abp.Http.Client.Web
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+ true
+ Library
+ true
+
+
+
+
+
+
+
+
+
diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/AbpHttpClientWebModule.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/AbpHttpClientWebModule.cs
new file mode 100644
index 0000000000..4700e1bef1
--- /dev/null
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/AbpHttpClientWebModule.cs
@@ -0,0 +1,42 @@
+using System.Linq;
+using Microsoft.AspNetCore.Mvc.ApplicationParts;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection.Extensions;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.AspNetCore.Mvc.Conventions;
+using Volo.Abp.Http.Client.Web.Conventions;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.Http.Client.Web
+{
+ [DependsOn(
+ typeof(AbpAspNetCoreMvcModule),
+ typeof(AbpHttpClientModule)
+ )]
+ public class AbpHttpClientWebModule : AbpModule
+ {
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.Replace(ServiceDescriptor.Transient());
+ context.Services.AddTransient();
+
+ var partManager = context.Services.GetSingletonInstance();
+ partManager.FeatureProviders.Add(new AbpHttpClientProxyControllerFeatureProvider());
+ }
+
+ public override void OnApplicationInitialization(ApplicationInitializationContext context)
+ {
+ var partManager = context.ServiceProvider.GetRequiredService();
+ foreach (var moduleAssembly in context
+ .ServiceProvider
+ .GetRequiredService()
+ .Modules
+ .Select(m => m.Type.Assembly)
+ .Where(a => a.GetTypes().Any(AbpHttpClientProxyHelper.IsClientProxyService))
+ .Distinct())
+ {
+ partManager.ApplicationParts.AddIfNotContains(moduleAssembly);
+ }
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyControllerFeatureProvider.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyControllerFeatureProvider.cs
new file mode 100644
index 0000000000..9b365fb21f
--- /dev/null
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyControllerFeatureProvider.cs
@@ -0,0 +1,13 @@
+using System.Reflection;
+using Microsoft.AspNetCore.Mvc.Controllers;
+
+namespace Volo.Abp.Http.Client.Web.Conventions
+{
+ public class AbpHttpClientProxyControllerFeatureProvider : ControllerFeatureProvider
+ {
+ protected override bool IsController(TypeInfo typeInfo)
+ {
+ return AbpHttpClientProxyHelper.IsClientProxyService(typeInfo);
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyHelper.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyHelper.cs
similarity index 81%
rename from framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyHelper.cs
rename to framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyHelper.cs
index 5ec9d59112..7d8e636d38 100644
--- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyHelper.cs
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyHelper.cs
@@ -3,9 +3,9 @@ using System.Linq;
using Volo.Abp.Application.Services;
using Volo.Abp.Http.Client.ClientProxying;
-namespace Volo.Abp.Swashbuckle.Conventions
+namespace Volo.Abp.Http.Client.Web.Conventions
{
- public static class AbpSwaggerClientProxyHelper
+ public static class AbpHttpClientProxyHelper
{
public static bool IsClientProxyService(Type type)
{
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyServiceConvention.cs b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs
similarity index 95%
rename from framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyServiceConvention.cs
rename to framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs
index b60e32e5f0..52ccdabfc5 100644
--- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyServiceConvention.cs
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo/Abp/Http/Client/Web/Conventions/AbpHttpClientProxyServiceConvention.cs
@@ -14,15 +14,15 @@ using Volo.Abp.Http.Client.ClientProxying;
using Volo.Abp.Http.Modeling;
using Volo.Abp.Reflection;
-namespace Volo.Abp.Swashbuckle.Conventions
+namespace Volo.Abp.Http.Client.Web.Conventions
{
[DisableConventionalRegistration]
- public class AbpSwaggerServiceConvention : AbpServiceConvention
+ public class AbpHttpClientProxyServiceConvention : AbpServiceConvention
{
protected readonly IClientProxyApiDescriptionFinder ClientProxyApiDescriptionFinder;
protected readonly List ActionWithAttributeRoute;
- public AbpSwaggerServiceConvention(
+ public AbpHttpClientProxyServiceConvention(
IOptions options,
IConventionalRouteBuilder conventionalRouteBuilder,
IClientProxyApiDescriptionFinder clientProxyApiDescriptionFinder)
@@ -34,12 +34,12 @@ namespace Volo.Abp.Swashbuckle.Conventions
protected override IList GetControllers(ApplicationModel application)
{
- return application.Controllers.Where(c => !AbpSwaggerClientProxyHelper.IsClientProxyService(c.ControllerType)).ToList();
+ return application.Controllers.Where(c => !AbpHttpClientProxyHelper.IsClientProxyService(c.ControllerType)).ToList();
}
protected virtual IList GetClientProxyControllers(ApplicationModel application)
{
- return application.Controllers.Where(c => AbpSwaggerClientProxyHelper.IsClientProxyService(c.ControllerType)).ToList();
+ return application.Controllers.Where(c => AbpHttpClientProxyHelper.IsClientProxyService(c.ControllerType)).ToList();
}
protected override void ApplyForControllers(ApplicationModel application)
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
index 39757f8454..d759c14604 100644
--- a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
+++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
@@ -20,7 +20,6 @@
-
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs
index 9bfdeead10..c8ee0737c8 100644
--- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs
+++ b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/AbpSwashbuckleModule.cs
@@ -1,21 +1,12 @@
-using System.Linq;
-using Microsoft.AspNetCore.Mvc.ApplicationParts;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.DependencyInjection.Extensions;
-using Microsoft.Extensions.Options;
-using Volo.Abp.AspNetCore.Mvc;
-using Volo.Abp.AspNetCore.Mvc.Conventions;
-using Volo.Abp.Http.Client;
+using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
-using Volo.Abp.Swashbuckle.Conventions;
using Volo.Abp.VirtualFileSystem;
namespace Volo.Abp.Swashbuckle
{
[DependsOn(
typeof(AbpVirtualFileSystemModule),
- typeof(AbpAspNetCoreMvcModule),
- typeof(AbpHttpClientModule))]
+ typeof(AbpAspNetCoreMvcModule))]
public class AbpSwashbuckleModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
@@ -24,35 +15,6 @@ namespace Volo.Abp.Swashbuckle
{
options.FileSets.AddEmbedded();
});
-
- var swaggerConventionOptions = context.Services.ExecutePreConfiguredActions();
- if (swaggerConventionOptions.IsEnabled)
- {
- context.Services.Replace(ServiceDescriptor.Transient());
- context.Services.AddTransient();
-
- var partManager = context.Services.GetSingletonInstance();
- partManager.FeatureProviders.Add(new AbpSwaggerClientProxyControllerFeatureProvider());
- }
- }
-
- public override void OnApplicationInitialization(ApplicationInitializationContext context)
- {
- var swaggerConventionOptions = context.ServiceProvider.GetRequiredService>().Value;
- if (swaggerConventionOptions.IsEnabled)
- {
- var partManager = context.ServiceProvider.GetRequiredService();
- foreach (var moduleAssembly in context
- .ServiceProvider
- .GetRequiredService()
- .Modules
- .Select(m => m.Type.Assembly)
- .Where(a => a.GetTypes().Any(AbpSwaggerClientProxyHelper.IsClientProxyService))
- .Distinct())
- {
- partManager.ApplicationParts.AddIfNotContains(moduleAssembly);
- }
- }
}
}
}
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyControllerFeatureProvider.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyControllerFeatureProvider.cs
deleted file mode 100644
index 341f38a7dc..0000000000
--- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyControllerFeatureProvider.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Reflection;
-using Microsoft.AspNetCore.Mvc.Controllers;
-
-namespace Volo.Abp.Swashbuckle.Conventions
-{
- public class AbpSwaggerClientProxyControllerFeatureProvider : ControllerFeatureProvider
- {
- protected override bool IsController(TypeInfo typeInfo)
- {
- return AbpSwaggerClientProxyHelper.IsClientProxyService(typeInfo);
- }
- }
-}
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyOptions.cs b/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyOptions.cs
deleted file mode 100644
index 81977c3478..0000000000
--- a/framework/src/Volo.Abp.Swashbuckle/Volo/Abp/Swashbuckle/Conventions/AbpSwaggerClientProxyOptions.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-namespace Volo.Abp.Swashbuckle.Conventions
-{
- public class AbpSwaggerClientProxyOptions
- {
- public bool IsEnabled { get; set; }
-
- public AbpSwaggerClientProxyOptions()
- {
- IsEnabled = true;
- }
- }
-}
diff --git a/nupkg/common.ps1 b/nupkg/common.ps1
index df0d99b19c..18831435de 100644
--- a/nupkg/common.ps1
+++ b/nupkg/common.ps1
@@ -112,6 +112,7 @@ $projects = (
"framework/src/Volo.Abp.HangFire",
"framework/src/Volo.Abp.Http.Abstractions",
"framework/src/Volo.Abp.Http.Client",
+ "framework/src/Volo.Abp.Http.Client.Web",
"framework/src/Volo.Abp.Http.Client.IdentityModel",
"framework/src/Volo.Abp.Http.Client.IdentityModel.Web",
"framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly",
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
index 4737f9a746..92b82d8832 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
@@ -29,6 +29,7 @@
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
index 944fd56704..635907da3a 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
@@ -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;
@@ -51,6 +52,7 @@ namespace MyCompanyName.MyProjectName.Web
typeof(AbpAutofacModule),
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpSettingManagementWebModule),
+ typeof(AbpHttpClientWebModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpIdentityWebModule),
typeof(AbpTenantManagementWebModule),
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
index 3407a44f2c..d589375c9c 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
@@ -21,6 +21,7 @@
+
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs
index a5bc702a57..3ea5dfc03a 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs
@@ -34,6 +34,7 @@ using Volo.Abp.Caching;
using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Http.Client.IdentityModel.Web;
+using Volo.Abp.Http.Client.Web;
using Volo.Abp.Identity;
using Volo.Abp.Identity.Web;
using Volo.Abp.Modularity;
@@ -59,6 +60,7 @@ namespace MyCompanyName.MyProjectName
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
typeof(AbpAutofacModule),
typeof(AbpCachingStackExchangeRedisModule),
+ typeof(AbpHttpClientWebModule),
typeof(AbpHttpClientIdentityModelWebModule),
typeof(AbpIdentityWebModule),
typeof(AbpIdentityHttpApiClientModule),