我想在包含URL参数的Angular4中调用REST API。模板看起来像这样:
http://localhost:61448/api/Product/language/{languauge}/name/{name}
这是一个有效的例子:
http://localhost:61448/api/Product/language/en-us/name/apple
我知道我可以自己连接网址:
this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product/language/' + 'en-us' + '/name/' + 'apple',)
.subscribe(data => {
// do something with data
});
但是我希望找到一个更好的解决方案,比如HttpParams
:
const params = new HttpParams()
.set('language', 'en-us')
.set('name', 'apple');
this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product', {params : params}).subscribe(data => {
// do something with data
});
但是这将生成以下请求(包含查询参数):
http://localhost:61448/api/Product?language=en-us&name=apple
有没有办法生成正确的URL而不自己连接?
答案 0 :(得分:1)
而不是:
this.http.get<Array<ProductResponse>>('http://localhost:61448/api/Product/language/' + 'en-us' + '/name/' + 'apple',)
.subscribe(data => {
// do something with data
});
做的:
this.http.get<Array<ProductResponse>>(`http://localhost:61448/api/Product/language/${languauge}/name/${name}`,)
.subscribe(data => {
// do something with data
});
其中language
和name
是您的参数。
请注意网址的特殊引号字符,并且您的参数必须位于${}
参考链接: https://basarat.gitbooks.io/typescript/docs/template-strings.html