J'ai fini par trouver par le biais de l'IntelliSense sur l' get()
fonction. Donc, je vais le poster ici pour quiconque est à la recherche pour obtenir des informations similaires.
De toute façon, la syntaxe est presque identique, mais un peu différente. Au lieu d'utiliser URLSearchParams()
les paramètres doivent être initialisé en HttpParams()
et de la propriété au sein de l' get()
fonction est maintenant appelé params
au lieu 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 })
}
Je préfère cette syntaxe comme sa un peu plus le paramètre agnostique. J'ai aussi refait le code pour le rendre un peu plus abrégée.
getLogs(logNamespace): Observable<any> {
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, {
params: new HttpParams().set('logNamespace', logNamespace)
})
}
Plusieurs Paramètres
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éfinie à l'intérieur. Comme @estus souligné dans le commentaire ci-dessous, il y a beaucoup de réponses à Cette Question de comment faire pour affecter 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 })
Plusieurs Paramètres à la fois la Logique Conditionnelle
Une autre chose que je fais souvent avec plusieurs paramètres permettent l'utilisation de plusieurs paramètres, sans exiger de leur présence lors de chaque appel. À l'aide de Lodash, c'est assez simple à conditionnellement ajouter/supprimer des paramètres d'appels à l'API. Les fonctions exactes utilisées dans Lodash ou des traits de Soulignement, ou de la vanille JS peut varier en fonction de votre application, mais j'ai trouvé que la vérification de définition de propriété fonctionne assez bien. La fonction ci-dessous transmettre uniquement les paramètres qui possèdent des propriétés correspondantes dans les paramètres de la variable passée dans 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 })