J'ai fini par le trouver via IntelliSense sur la get()
fonction. Donc, je le posterai ici pour tous ceux qui recherchent des informations similaires.
Quoi qu'il en soit, la syntaxe est presque identique, mais légèrement différente. Au lieu d'utiliser URLSearchParams()
les paramètres doivent être initialisés en tant que HttpParams()
et la propriété dans la get()
fonction est maintenant appelée à la params
place de search
.
import { HttpClient, HttpParams } from '@angular/common/http';
getLogs(logNamespace): Observable<any> {
// Setup log namespace query parameter
let params = new HttpParams().set('logNamespace', logNamespace);
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
}
En fait, je préfère cette syntaxe car elle est un peu plus indépendante des paramètres. J'ai également remanié le code pour le rendre légèrement plus abrégé.
getLogs(logNamespace): Observable<any> {
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, {
params: new HttpParams().set('logNamespace', logNamespace)
})
}
Paramètres multiples
Le meilleur moyen que j'ai trouvé jusqu'à présent est de définir un Params
objet avec tous les paramètres que je veux définir définis à l'intérieur. Comme @estus l'a souligné dans le commentaire ci-dessous, cette question contient de nombreuses réponses intéressantes sur la manière d'attribuer plusieurs paramètres.
getLogs(parameters) {
// Initialize Params Object
let params = new HttpParams();
// Begin assigning parameters
params = params.append('firstParameter', parameters.valueOne);
params = params.append('secondParameter', parameters.valueTwo);
// Make the API call using the new parameters.
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
Paramètres multiples avec logique conditionnelle
Une autre chose que je fais souvent avec plusieurs paramètres est d'autoriser l'utilisation de plusieurs paramètres sans exiger leur présence à chaque appel. En utilisant Lodash, il est assez simple d'ajouter / supprimer conditionnellement des paramètres d'appels à l'API. Les fonctions exactes utilisées dans Lodash ou Underscores, ou vanilla JS peuvent varier en fonction de votre application, mais j'ai trouvé que la vérification de la définition de propriété fonctionne plutôt bien. La fonction ci-dessous ne transmettra que les paramètres qui ont des propriétés correspondantes dans la variable de paramètres transmise à la fonction.
getLogs(parameters) {
// Initialize Params Object
let params = new HttpParams();
// Begin assigning parameters
if (!_.isUndefined(parameters)) {
params = _.isUndefined(parameters.valueOne) ? params : params.append('firstParameter', parameters.valueOne);
params = _.isUndefined(parameters.valueTwo) ? params : params.append('secondParameter', parameters.valueTwo);
}
// Make the API call using the new parameters.
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
this.httpClient.get(url, { params }
Consultez stackoverflow.com/a/54211610/5042169