Jos*_*rán 4 rest angular angular5
我正在为REST API开发Angular Client。
我的api公开如下网址:
https://server.com/users/detail/3
Run Code Online (Sandbox Code Playgroud)
其中3是参数。
我尝试使用Angular Client生成路径变量,但无法执行。我尝试
getUser(username: string) {
const options = {
params: new HttpParams().set('username', username)
};
return this.http.get<User>('detail/{username}', options); }
Run Code Online (Sandbox Code Playgroud)
但是结果不正确。有人能帮我吗?
编辑
在尝试解决方案后,它仍然无法正常工作。如果
getUser(username: string) {
const options = {
params: new HttpParams().set('username', username)
};
const resource = 'detail/' + username;
return this.http.get<any>(resource); }
Run Code Online (Sandbox Code Playgroud)
这个解决方案似乎我太可怜了,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)
})
}
Run Code Online (Sandbox Code Playgroud)
如果要设置HttpParams,则应使用this.http.post-当然,如果服务器支持post而不是get。
| 归档时间: |
|
| 查看次数: |
6380 次 |
| 最近记录: |