我有一个通用的方法来与我的Swagger API通信:
get<ReturnType>(url: string, params?: HttpParams): Observable<ReturnType> {
return this.http.get<ReturnType>(environment.apiUrl + url, {
params: params,
});
}
字符串
但是当我用参数发出请求时,它试图到达这个端点http://localhost:3000/user/get?id=10
而不是http://localhost:3000/user/get/10
在后端侧有:
@Get('get/:id')
@ApiResponse({ type: UserDto, status: 201 })
getUser(@Param('id') id: number): UserDto {
return { id: id, name: 'John Doe', email: '[email protected]' };
}
型
错误在哪里,我该如何弥补?
3条答案
按热度按时间rqcrx0a61#
您希望使用查询参数而不是url参数。从
@Get()
中删除:id
,并使用@Query('id')
代替@Param('id')
。一旦更新get请求,其他一切都应该正常snz8szmq2#
在Angular中,您将
id
作为查询字符串参数而不是路径发送。我相信你现在调用的
get
方法如下:字符串
要将
id
作为路径发送,您应该将URL构造为“/user/get/10”,而不是使用HttpParams
。型
cigdeys33#
你必须给予一个路径变量给url而不是请求参数,如果你想得到这个url -
http://localhost:3000/user/get/{id}
用这个,
字符串