Angular 5 HttpClient 路径变量

标签 angular rest angular5

我正在为 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/

相关文章:

rest - 云消息传递还是 REST API?

angular - 图像没有立即以 Angular 显示

angular - MatDialogRef .afterClosed Observable

javascript - Angular2 异步设置用户?

angular - 服务始终返回构造函数中设置的值

Angular 5显示嵌套问题和答案在其父项目下显示项目

datepicker - 如何用 Protractor 测试日期选择器?

Angular 2 Forms - 如何在包含对象数组的嵌套表单组上修补值

node.js - 在类中排序 RESTful API 方法的最佳实践

rest - 无法在 `Fn` 闭包中将捕获的外部变量借用为可变的