Wie, um das setup baseUrl für Winkel-HttpClient?
Habe ich nicht einen Weg finden, in Dokumentation zu set base-API-url für alle http-Anfragen. Ist es möglich mit Winkel-HttpClient?
- Sie konnte erstellen eine interceptor, dass wird aktualisieren Sie die url mit welcher Basis wollen Sie.
- ist es nicht ein overhead verwenden Abfangjäger für diesen Fall?
- Wenn Sie ändern möchten nur das es ja sein könnte. Eine andere Möglichkeit wäre, eine einfache Funktion getApiUrl (), die alle Transformationen, die erforderlich sind, wie das hinzufügen der Basis-Pfad.
- Oder erstellen Sie eine Klasse, abgeleitet von der XHRBackend und erstellen Sie die Verbindung mit der Basis-url im Ort. Es gibt vor-und Nachteile für jeden Ansatz bin ich nicht bewusst 'einfacher' Weise der Bereitstellung dieser.
- Ich persönlich benutze einen interceptor aber empfehlen zum hinzufügen von anderen Funktionen als gut, wie die Festlegung der Kopfzeilen für alle Anforderungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die neue HttpClient-Interceptor.
Erstellen Sie eine korrekte injizierbaren, die
HttpInterceptor
:Den HttpInterceptor kann Klon der Anfrage und ändern Sie es wie Sie wollen, in diesem Fall habe ich den vorgegebenen Standard-Dateipfad für alle http-Anforderungen.
Bieten die HttpClientModule mit den folgenden Konfigurationen:
Nun alle Ihre Anfragen werden beginnen mit
your-api-url/
baseUrl
Eigentum statt diese middleware-Lösung wie, dass ist übertrieben für so ein einfaches use-caseBasierend auf
TheUnreal
's sehr nützlich, Antwort, der interceptor kann geschrieben werden, um die Basis-url durch DI:BASE_API_URL
kann durch die Anwendung Modul:wo
environment
wird das Objekt automatisch erstellt, indem die CLI beim generieren des Projekts:BASE_API_URL
?environment
- Objekt und geben Sie zwei Werte in der Anwendung-Modul (ich gehe davon aus, dass verschiedene Komponenten verwenden, entweder von Ihnen, so macht es Sinn, zu injizieren, was nötig ist in die jeweilige Komponente).müssen Sie nicht unbedingt eine Basis-URL mit HttpClient, den docs sagt, Sie müssen nur geben Sie den api-Teil des Antrags, wenn Sie Anrufe auf dem gleichen server, es ist einfach so:
this.http.get('/api/items').subscribe(data => {
...
Allerdings können Sie, wenn Sie brauchen oder wollen, geben Sie eine Basis-URL.
Ich habe 2 Vorschläge dazu:
1. Eine helper-Klasse mit einer statischen Klasse Eigenschaft.
2. Eine Basisklasse ist eine Klasse Eigenschaft, so dass jeder neue Dienst soll verlängern:
}
Auszüge aus Visual studio 2017 asp.net Kern webapi Winkel-Beispiel-Anwendung.
zählen die folgenden Zeilen in der Main.ts
in der Komponente
meine komplette main.ts-code sieht wie folgt aus
meine Komponente code sieht wie folgt aus
Ich denke, es gibt keine Standard-Weg, dies zu tun. Tun die HttpService und im inneren kann man definieren-Eigenschaft des Standard-URL, und stellen Methoden zum aufrufen von http.Holen Sie sich und andere mit Ihren URL-Eigenschaft. Dann injizieren HttpService statt HttpClient
Warum nicht ein HttpClient-Unterklasse, hat einen konfigurierbaren baseUrl? So, wenn Ihre Anwendung benötigt, um die Kommunikation mit mehreren Dienstleistungen können Sie entweder eine andere Unterklasse für jeden, oder erstellen Sie mehrere Instanzen einer Unterklasse, jede mit einer unterschiedlichen Konfiguration.