Browse Source

Implement the Dapr http client

pull/13573/head
liangshiwei 4 years ago
parent
commit
bccd115590
  1. 24
      framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpDaprClientOptions.cs
  2. 20
      framework/src/Volo.Abp.Http.Client.Dapr/Volo/Abp/Http/Client/Dapr/AbpHttpClientDaprModule.cs
  3. 2
      framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs

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

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

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

@ -1,4 +1,5 @@
using Volo.Abp.Dapr;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Dapr;
using Volo.Abp.Modularity;
namespace Volo.Abp.Http.Client.Dapr;
@ -6,7 +7,20 @@ namespace Volo.Abp.Http.Client.Dapr;
[DependsOn(
typeof(AbpHttpClientModule),
typeof(AbpDaprModule)
)]
)]
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);
});
});
}
}

2
framework/src/Volo.Abp.Http.Client/Microsoft/Extensions/DependencyInjection/ServiceCollectionHttpClientProxyExtensions.cs

@ -212,7 +212,7 @@ public static class ServiceCollectionHttpClientProxyExtensions
}
/// <summary>
/// Checks wether the type is suitable to use with the proxying.
/// Checks whether the type is suitable to use with the proxying.
/// Currently the type is checked statically against some fixed conditions.
/// </summary>
/// <param name="type">Type to check</param>

Loading…
Cancel
Save