From 0a0bf44638f3010b302a06e517e605fa9c3a390c Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Mon, 21 Sep 2026 09:22:50 +0100 Subject: [PATCH] Remove redundant manual client registration --- .../HealthMonitoringRegistrationClient.cs | 23 ------------------- HealthMonitoring.Client/README.md | 20 ++-------------- 2 files changed, 2 insertions(+), 41 deletions(-) diff --git a/HealthMonitoring.Client/HealthMonitoringRegistrationClient.cs b/HealthMonitoring.Client/HealthMonitoringRegistrationClient.cs index bcc9bf9..d65f40d 100644 --- a/HealthMonitoring.Client/HealthMonitoringRegistrationClient.cs +++ b/HealthMonitoring.Client/HealthMonitoringRegistrationClient.cs @@ -1,15 +1,9 @@ using System.Net.Http.Json; using System.Text.Json; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace HealthMonitoring.Client; -public sealed class HealthMonitoringRegistrationClientOptions -{ - public Uri MonitoringServerUrl { get; set; } = new("http://localhost:9620"); -} - public sealed class ServiceRegistrationOptions { public string ServiceId { get; init; } = string.Empty; @@ -165,20 +159,3 @@ private sealed record ServiceIdentityPayload(Guid Id, string ServiceId, string N private sealed record DependencyMappingPayload(string DependencyName, Guid TargetMonitoredServiceId); private sealed record DependencyLinkResponsePayload(Guid Id, string DependencyName, Guid TargetMonitoredServiceId, string TargetServiceId, string TargetServiceName); } - -public static class HealthMonitoringRegistrationClientServiceCollectionExtensions -{ - public static IHttpClientBuilder AddHealthMonitoringRegistrationClient(this IServiceCollection services, Action configure) - { - ArgumentNullException.ThrowIfNull(services); - ArgumentNullException.ThrowIfNull(configure); - var options = new HealthMonitoringRegistrationClientOptions(); - configure(options); - if (!options.MonitoringServerUrl.IsAbsoluteUri) throw new ArgumentException("The monitoring server URL must be absolute.", nameof(configure)); - - return services.AddHttpClient(client => - { - client.BaseAddress = options.MonitoringServerUrl; - }); - } -} diff --git a/HealthMonitoring.Client/README.md b/HealthMonitoring.Client/README.md index 0c98c47..b6197db 100644 --- a/HealthMonitoring.Client/README.md +++ b/HealthMonitoring.Client/README.md @@ -1,6 +1,6 @@ # HealthMonitoring.Client -Reusable .NET client for service self-registration and dependency mapping. +Reusable .NET client for configuration-based service self-registration and dependency mapping. For automatic registration at application startup, add this configuration: @@ -32,20 +32,4 @@ services.AddHealthMonitoringRegistration(configuration); The client registers the service and dependency mappings once during application startup. Registration is idempotent. If the `HealthMonitoring` section is absent, no registration is attempted and the application starts normally. -```csharp -services.AddHealthMonitoringRegistrationClient(options => -{ - options.MonitoringServerUrl = new Uri("http://localhost:9620"); -}); - -var result = await client.RegisterAndConfigureAsync( - new ServiceRegistrationOptions - { - ServiceId = "payments-api", - Name = "Payments API", - HealthUrl = new Uri("https://payments-api/health") - }, - [new DependencyMappingOptions("Security Service", "security-service")]); -``` - -Registration is idempotent. Dependency mappings are resolved by `TargetServiceId` and are created or updated as needed. +Dependency mappings are resolved by `TargetServiceId` and are created or updated as needed.