我有一个WebApi和一个角度网站。 角部分在公共地址上。 是否可以在不暴露API的情况下到达api?
我当时想也许可以使用url重写(我是url重写的新手)来完成此操作,但是到目前为止我还没有运气。
例如,如果该网站的地址为somesite.com,并调用somesite.com/api/cars来检索汽车列表。然后重写应将其更改为ti:localhost:5000 / api / cars。
有可能吗?
谢谢!
答案 0 :(得分:0)
如果您打算部署静态服务器(例如NGINX / Apache)来交付角度文件,并进一步将其用作反向代理以从API中获取数据,那么可以,您可以将URL重写为localhost:5000/api/cars
。 / p>
您可以进一步将运行在端口5000上的服务器配置为仅接受来自localhost / 127.0.0.1
的请求。因此somesite.com:5000/api/cars
将无法从外部世界访问。
答案 1 :(得分:0)
您不能仅通过URL重写来执行此操作,而必须安装ARR。安装后,您可以输入如下规则来实现所需的目标:
<rules>
<rule name="Reverse Proxy to api" stopProcessing="true">
<match url="^api/cars/(.*)" />
<action type="Rewrite" url="http://localhost:5000/api/cars/{R:1}" />
</rule>
</rules>
答案 2 :(得分:0)
不可能。我不知道我在想什么。 由于Angular在客户端上,因此如果您调用localhost,则无法访问服务器。 Localhost只会调用您安装了浏览器的计算机。