Browse Source

Add AbpInvocationHandler

pull/13573/head
liangshiwei 4 years ago
parent
commit
c559fa4335
  1. 14
      framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpDaprClientOptions.cs
  2. 3
      framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpHttpClientDaprModule.cs
  3. 14
      framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpInvocationHandler.cs

14
framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpDaprClientOptions.cs

@ -1,24 +1,18 @@
using Dapr.Client;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
namespace Volo.Abp.Http.Client.Dapr;
public class AbpDaprClientOptions
{
public Action<string, IHttpClientBuilder, string> DaprHttpClientBuilderAction { get; set; }
public Action<string, IHttpClientBuilder> DaprHttpClientBuilderAction { get; set; }
public AbpDaprClientOptions()
{
DaprHttpClientBuilderAction = DefaultDaprHttpClientBuilder;
}
private void DefaultDaprHttpClientBuilder(string serviceName, IHttpClientBuilder clientBuilder, string daprEndpoint)
private void DefaultDaprHttpClientBuilder(string serviceName, IHttpClientBuilder clientBuilder)
{
Check.NotNull(daprEndpoint, nameof(daprEndpoint));
clientBuilder.AddHttpMessageHandler(() => new InvocationHandler
{
DaprEndpoint = daprEndpoint
});
clientBuilder.AddHttpMessageHandler<AbpInvocationHandler>();
}
}

3
framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpHttpClientDaprModule.cs

@ -12,14 +12,13 @@ public class AbpHttpClientDaprModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var daprOptions = context.Services.ExecutePreConfiguredActions<AbpDaprOptions>();
var daprClientOptions = context.Services.ExecutePreConfiguredActions<AbpDaprClientOptions>();
PreConfigure<AbpHttpClientBuilderOptions>(options =>
{
options.ProxyClientBuildActions.Add((_, clientBuilder) =>
{
daprClientOptions.DaprHttpClientBuilderAction(_, clientBuilder, daprOptions.HttpEndpoint);
daprClientOptions.DaprHttpClientBuilderAction(_, clientBuilder);
});
});
}

14
framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpInvocationHandler.cs

@ -0,0 +1,14 @@
using Dapr.Client;
using Microsoft.Extensions.Options;
using Volo.Abp.Dapr;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Http.Client.Dapr;
public class AbpInvocationHandler : InvocationHandler, ITransientDependency
{
public AbpInvocationHandler(IOptions<AbpDaprOptions> daprOptions)
{
DaprEndpoint = daprOptions.Value.HttpEndpoint;
}
}
Loading…
Cancel
Save