用URL重写调用localhost API

时间:2018-08-10 10:45:54

标签: angular iis url-rewriting asp.net-web-api2

我有一个WebApi和一个角度网站。 角部分在公共地址上。 是否可以在不暴露API的情况下到达api?

我当时想也许可以使用url重写(我是url重写的新手)来完成此操作,但是到目前为止我还没有运气。

例如,如果该网站的地址为somesite.com,并调用somesite.com/api/cars来检索汽车列表。然后重写应将其更改为ti:localhost:5000 / api / cars。

有可能吗?

谢谢!

3 个答案:

答案 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只会调用您安装了浏览器的计算机。