2016-06-01 11 views
2

Ich habe eine ASP.NET-Anwendung mit Web-API-Controller und eckigen Client. Ich rufe auf dem Web-api in dem nächsten Weg:Wie umleiten alle Anrufe an eine andere Anwendung mit Web-API

this.$http.get('api/menu/get', { 
       params: {} 
      }) 

So ich wie http://myApp/api/menu/get zu absolutem Pfad nennen. Und jetzt sollte ich einige Daten von einer anderen Web-Anwendung erhalten, URL-Beispiel: http://secondApp/reportsApi/reports/get.

So erhalten Sie Daten von secondApp web api? Wie ich weiß, ich kann nur absoluten Pfad von UI aufrufen wie

this.$http.get('http://secondApp/reportsApi/reports/get', { 
       params: {} 
      }) 

Aber es sieht nicht wie eine gute Entscheidung. Ich werde nicht um Anrufe tätigen, wie:

this.$http.get('reportsApi/reports/get', { 
       params: {} 
      }) 

Und in gewisser Weise redicrect dies von „myApp“ auf „secondApp“ nennt.

+0

warum würden Sie diese Client-Seite tun? Sie sollten den Proxy-Pass im Server einrichten. –

+0

Sorry, vielleicht irre ich etwas wo in der Beschreibung, aber es ist genau das, was ich tun will, aber ich weiß nicht wie. Wie kann ich den Proxy-Pass im Server einrichten, um nur Anrufe wie 'reportsApi/reports/get' umzuleiten? –

Antwort

1

Hier wird beschrieben, wie Sie die integrierten IIS-Rewrite-Module verwenden können.
http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

Sie mit so etwas wie dies in Ihrem web.config am Ende:

<system.webServer> 
    <rewrite> 
    <rules> 
     <rule name="Redirect Reports Api" stopProcessing="true"> 
     <match url="^reportsApi/reports/get" /> 
     <action type="Rewrite" url="http://secondApp/reportsApi/reports/get" /> 
     </rule> 
    <rules> 
    <rewrite> 
<system.webServer> 
Verwandte Themen