我正在为 REST API 开发 Angular 客户端。
我的 api 暴露 URL 如下:
https://server.com/users/detail/3
其中 3 是一个参数。
我尝试使用 Angular Client 生成路径变量,但我做不到。我试试
getUser(username: string) {
const options = {
params: new HttpParams().set('username', username)
};
return this.http.get<User>('detail/{username}', options); }
但结果不正确。 有人可以帮助我吗?
编辑
在我尝试了这些解决方案后,它仍然不起作用。如果
getUser(username: string) {
const options = {
params: new HttpParams().set('username', username)
};
const resource = 'detail/' + username;
return this.http.get<any>(resource); }
这个解决方案似乎我太差了,Angular HttpClient 有解决方案吗?
最佳答案
因为使用 http.get 你的参数应该被插入到 URL 中:
getUser(username: string): void {
let url = `https://server.com/users/detail/${username}`;
this.http.get< User >(url)
//if api returns any data
.subscribe((returnObject: User) => {
//returned data
//remember that this segment will be returned asynchronously
//for example: callback(returnObject);
}, (error: HttpErrorResponse) => {
//if error
//for example: errorCallback(error)
})
}
如果你想设置 HttpParams 你应该使用 this.http.post - 当然如果服务器支持 post 而不是 get。
关于Angular 5 HttpClient 路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211375/