如何触发事件刷新多个.net api的配置

问题描述 投票:0回答:1

我们有超过 100 多个 .net API,其配置是从 gitlab 配置中获取的。每当有人更新配置时,我们都会同步镜像并重新启动服务。

我们有一个要求,在不重新启动的情况下,我们希望实现一些通过启动事件我们可以更新所有/选定服务的配置的东西。某种观察者模式,但处于服务级别。任何想法如何通过进行最少的代码更改来实现这一点。

我们有一个通用的 nuget 包,我们可以在其中进行更改,供所有 100 多个 API 使用。

.net design-patterns configuration api-design observer-pattern
1个回答
0
投票

您可以实施 Webhook 或 HTTP 回调,其中集中式配置管理系统通过向预定义端点发送 HTTP 请求来通知您的 API 有关配置更改的信息。收到此类请求后,API 可以触发刷新过程。

示例:

[ApiController]
[Route("webhook/config")]
public class WebhookController : ControllerBase
{
    [HttpPost]
    public IActionResult HandleConfigUpdate([FromBody] ConfigUpdatePayload payload)
    {
        // Process the configuration update payload
        // Refresh configuration in the API
        // You might trigger a configuration refresh event or directly update configuration here
        return Ok();
    }
}

public class ConfigUpdatePayload
{
    // Define properties based on the payload structure expected from the configuration management system
    // For example, it could include information about the updated configuration
}
© www.soinside.com 2019 - 2024. All rights reserved.