如何在 ASP.NET 中将请求从一项服务桥接到另一项服务

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

我正在 ASP.NET Core Web API 中开发一个服务,它充当另一个服务的代理。对于少数特定端点,它应该自行处理请求,但对于所有其他端点,我希望它充当其他服务的桥梁,按原样发送请求,并按原样返回其响应。

我设法做到了这一点,但它变得相当复杂,而且我不断发现需要特殊处理的边缘情况,尽管我相信这应该是一个非常简单的问题。所以我想知道我是否缺少一个更简单的解决方案。

这是我尝试做的要点:

我遇到的一些问题(前两个我解决了,最后一个我还没有尝试过,因为我认为它变得太复杂了)

  • ResponsePhrase
    未桥接
  • 从浏览器发送请求时,我收到错误 404,并且必须删除原始 Host 标头才能解决该问题
  • 如果响应正文不是很小(例如 Swagger HTML),则由于分块错误而无法正确桥接。

那么我是否缺少一些更简单的解决方案?如果它真的很复杂,是否有任何现有的方法或库已经可以做到这一点?

非常感谢您的帮助。

c# .net asp.net-core asp.net-web-api dotnet-httpclient
1个回答
1
投票

我认为 YARP 正是您正在寻找的东西 :

https://microsoft.github.io/reverse-proxy/api/index.html

它拥有您需要的一切(甚至更多) - 我们成功地通过它放置了 swagger,甚至hangfire 仪表板。

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