如何在 Aspire 中创建外部 Web API 作为资源?

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

我找不到任何扩展或包,所以我只展示一些代码作为示例。

在一个项目中,我有超过 10 个外部 API,如果这些外部 API 是我的解决方案中的 .NET 项目,我会将它们添加为我的 Aspire 主项目中的项目引用。

例如,这是我的网络项目:

builder.AddProject<Projects.Main_Web>("web")
    .WithReference(connectionStringHangfire)
    .WithHttpsHealthCheck("/health")
    .WithExternalHttpEndpoints()
    .WaitForCompletion(migrations);

例如,我应该有一个用于股票报价的外部 API

builder.AddExternalApi<IStock>("stock")
    .WithHttpsHealthCheck("/health",r=>r.Health() ); // added one of the APIs as a health check

这样我就可以在资源选项卡中监控库存 API,我应该查看它的运行状况,我可以将 API 的运行状况检查添加到我的运行状况检查中。

我可以控制基本 url、用户、客户端 ID、密码,作为我的环境的参数

我可以控制日志,跟踪这些 API 的指标。

最后,我可以在它周围添加反向代理或 VPN。

有人做过这样的东西吗?

c# dotnet-httpclient dotnet-aspire
1个回答
0
投票

我还不能创建评论,但如果你找不到比这更好的答案,或者你不能等到这在 aspire 中实现,正如他们在 [https://github.com/CommunityToolkit/Aspire/issues 中告诉你的那样/312][1].

考虑创建一个本地项目 api,它将充当外部 api 的代理,这也将有助于其他事情(评估您是否希望发布该项目还是仅用于开发)。

在此代理中,您可以实施重试、回退、缓存等策略...

© www.soinside.com 2019 - 2024. All rights reserved.