typescript - Hur kommer jag att skicka queryparametrar till ett REST API inuti en service i en Angular-applikation?
Jag försöker skicka frågeparametrar inuti en tjänst till ett REST API.
Exempel på hur jag ska skicka till API. (FÖRVÄNTAT)
http://localhost:2000/world/123456789/avengers?type=fruits&fields=_all
Har försökt enligt nedan:
all(countId) {
const headers: HttpHeaders = new HttpHeaders({
"_id" : countId,
"content-type" : "application/json"
});
let params = new HttpParams();
params = params.append("type", "fruits");
params = params.append("fields", "_all");
const options = {
headers: headers,
params: params
};
return this.http.put ( "http://localhost:2000/world/123456789/avengers", options )
}
Men jag kan inte skicka dem som frågeparametrar. Hur ska jag göra det?
Svar #1
Du skickar för närvarande dina alternativ som begärans nyttolast, som du har upptäckt. Om du inte har någon nyttolast kan du skicka null:
all(countId) {
// ....
return this.http.put("...", null, options)
^^^^
}
Svar #2
Eftersom HTTP PUT/POST skickar kropp utan att lägga till frågesträng i URL:en (du kan använda något bibliotek för att bygga frågesträng) så att du behöver bygga din URL och alternativ
* @param url The endpoint URL.
* @param body The resources to add/update.
* @param options HTTP options
*
* @return An `Observable` of the response, with the response body as a JSON object.
*/
put(url: string, body: any | null, options?: {}
all(countId) {
const headers: HttpHeaders = new HttpHeaders({
"_id" : countId,
"content-type" : "application/json"
});
const options = {
headers: headers,
params: params
};
return this.http.put ( "http://localhost:2000/world/123456789/avengers??type=fruits&fields=_all", options)
}
