我如何使用 c# 在 asp.net web api(不是 .net 核心)中实现 api 网关

how can i implement api gateway in asp.net web api (not .net core) using c#

现在,我们使用 asp.net web api(不是 .net 核心)开发了许多服务 我们需要开发一个网关让客户端连接到一个端点,然后这个网关决定调用哪个 api 来处理传入的请求和 return 对客户端的响应,所以 web api 作为网关将重新路由请求和 return 响应

客户端<----> api 网关<----> 适当的网络api

我们需要尽可能简单地开发它,但最好使用 c# 和 asp.net web api

有什么想法吗??

Ocelot 是一个功能强大的库,但它被使用 in.Net 帮助我们构建弹性网关的核心,我不确定在这种情况下是否可以使用类似的 Asp.net 库。如果您找不到合适的库或提供商(云 api 网关提供商,如 azure 、 AWS )并且您必须编写自己的网关 api 那么您必须了解一些事情。

api 网关的最佳实践。

Api 网关非常有用,但同时也可能成为瓶颈。您的网关应该具有弹性且高度可用。根据您的请求负载,您可能必须实施 "Circuit breaker" 、 "Retry" 和 "bulk head" 等模式,为此您可以使用名为 Polly 的库。您可以记录您的调试和性能监控请求。安全是另一个方面,但实际上取决于您如何实施身份验证。您可以使用以下库的组合来实现您的目标。

https://github.com/App-vNext/Polly

https://github.com/reactiveui/refit