我如何使用C#在ASP.NET Web API(非.NET Core)中实现API网关

时间:2019-02-25 06:58:34

标签: api asp.net-web-api microservices soa api-gateway

现在,我们使用asp.net网络api(不是.net核心)开发了许多服务 我们需要开发一种网关,让客户端连接到一个端点,此网关决定调用哪个api来处理传入的请求并将响应返回给客户端,因此作为网关的web api将重新路由请求并返回响应

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

我们需要尽可能简单地开发它,但要使用c#和asp.net网络api的最佳实践

任何想法?

1 个答案:

答案 0 :(得分:0)

Ocelot是功能强大的库,但是它在.Net Core中使用,它可以帮助我们构建弹性网关,并且不确定在这种情况下可以使用的类似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