2016-10-03 1 views
0

App entwickelt. Ionischer + RestangularWie mehrere Auth Interceptor in Restangular hinzufügen?

ich eine globale Konfiguration bin in Restangular für BaseUrl und Auth Interceptor [.. Wie bei http://app ** com]

Nun ist meine Anforderung anderen Satz zu haben, von diesen. [Wie für http://yammer.com]

Wie stelle ich verschiedene Auth Interceptor und BaseURL für diese?

Ziel: Anwendung wird 2 BaseURL und AuthInterceptor haben. Wenn ich Yammer anrufe, kommuniziert die Anwendung nur mit URLs, die für Yammer spezifiziert sind, und wenn ich andere APIs anrufe, kommuniziert sie mit der globalen Konfiguration.

+0

http://stackoverflow.com/questions/22274975/is-it - möglich-zu-verwenden-restangular-setbaseurl-für-zwei-api-access-points/22276211 # 22276211 –

+0

@Poyra zYilmaz Danke für die Info ... was ist mit AuthInterceptor? Wie kann ich Header für verschiedene Szenarien senden? – Anand

+0

Sie können baseurl mit einer if-Bedingung überprüfen und verschiedene Maßnahmen für verschiedene URLs ... –

Antwort

1

Sie können so viele Interceptor hinzufügen, wie Sie wollen, indem Sie addRequestInterceptor verwenden und Ihre Logik an jeden Interceptor übergeben.

In Ihrem Fall können Sie einen oder zwei Abfangjäger haben, die baseurl und Änderungskopf überprüfen ...

RestangularProvider.addFullRequestInterceptor(function(element, operation, route, url, headers, params, httpConfig) { 
    if (url.startsWith('your.base.url2')) { 
     // change headers or do whatever you want 
    } 
    return { 
     element: element, 
     params: params, 
     headers: headers, 
     httpConfig: httpConfig 
    }; 
    }); 

    RestangularProvider.addFullRequestInterceptor(function(element, operation, route, url, headers, params, httpConfig) { 
    if (url.startsWith('your.base.url')) { 
     // change headers or do whatever you want 
    } 
    return { 
     element: element, 
     params: params, 
     headers: headers, 
     httpConfig: httpConfig 
    }; 
    }); 

HINWEIS: Dieses Interceptor wird auf jeder Anfrage und ihre Bestellung wird elbe ausgelöst sein mit Skript Reihenfolge bei Ihrer index.html und zweiten wird bearbeitet Anfrage nach dem ersten, so sollten Sie vorsichtig sein, wenn Sie mehrere Interceptor verwenden ...

+0

Danke Poyraz :) – Anand