【问题标题】:How to dynamically change the API_BASE_URL from nswag generated typescript Angular client如何从 nswag 生成的 typescript Angular 客户端动态更改 API_BASE_URL
【发布时间】:2020-06-04 23:50:21
【问题描述】:

我想动态更改由 NSWAG 生成的我的 typescript 客户端中配置的 API_BASE_URL。 我想在一个 Angular 模块中使用同一个客户端,一个 API_BASE_URL 和另一个 Angular 模块中的另一个 API_BASE_URL。 这可能吗?

感谢您的帮助

【问题讨论】:

    标签: angular typescript nswag


    【解决方案1】:

    您是否尝试在要使用 NSWAG 生成的客户端的模块中使用 providers 属性?

    只是一个例子:

    ModuleA
        providers: [
            {
                provide: API_BASE_URL, useValue: 'your-desired-value',
            },
            CustomerQueryClient, // Client from NSWAG Generated File
            CustomerCommandClient // Client from NSWAG Generated File
        ]
    
    ModuleB
        providers: [
            {
                provide: API_BASE_URL, useValue: 'your-desired-value',
            },
            CustomerQueryClient, // Client from NSWAG Generated File
            CustomerCommandClient // Client from NSWAG Generated File
        ]
    

    【讨论】:

    • 感谢您的帮助。我尝试在具有 2 个不同值的 2 个不同模块中配置它,并且第一个实例化我的客户赢了。我在生成的客户端中可以看到这个 API_BASE_URL 是一个常量 ...
    • 我在 2 个不同的模块中完成了这项工作:{ provide: API_BASE_URL, useValue: 'test1.com', },
    • 我已经更新了我的示例。如上所示,您是否还在每个模块中提供了您的客户?
    • 是的,每个模块都有不同的值,“useValue”而不是“value”
    • 绝对有必要将客户端添加到提供者列表中,以便为每个模块重新实例化它们。
    猜你喜欢
    • 1970-01-01
    • 2021-01-15
    • 2021-11-18
    • 2018-11-09
    • 1970-01-01
    • 2022-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    相关资源
    最近更新 更多