我找不到任何扩展或包,所以我只展示一些代码作为示例。
在一个项目中,我有超过 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。
有人做过这样的东西吗?
我还不能创建评论,但如果你找不到比这更好的答案,或者你不能等到这在 aspire 中实现,正如他们在 [https://github.com/CommunityToolkit/Aspire/issues 中告诉你的那样/312][1].
考虑创建一个本地项目 api,它将充当外部 api 的代理,这也将有助于其他事情(评估您是否希望发布该项目还是仅用于开发)。
在此代理中,您可以实施重试、回退、缓存等策略...