在返回 HttpResponse 时映射 HttpClient 响应数据
Map HttpClient response data while returning an HttpResponse
在我的服务中,我总是像这样使用 rxjs 将 JSON 转换为实际的 class 类型。
get(id: UUID): Observable<OrderDTO> {
return this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
.pipe(
map(x => OrderDTO.fromJson(x))
);
}
我现在有一个案例,我想这样做,但也得到了 HTTP headers。所以我将 {observe: 'response'}
添加到 get
调用,然后 return 一个 Observable<HttpResponse<OrderDTO>>
...除了我不知道如何仍然做适当的 map
那里。有人可以帮我解决这个语法问题吗?
我认为您将从 http 调用中获得一个 returned HttpResponse 对象,您可以映射您想要的 HttpResponse 属性和响应主体以及 return 数组,例如
this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
.pipe(
map(resp =>
[resp.headers,resp.body])
).subscribe(([header,body])=>....);
在我的服务中,我总是像这样使用 rxjs 将 JSON 转换为实际的 class 类型。
get(id: UUID): Observable<OrderDTO> {
return this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
.pipe(
map(x => OrderDTO.fromJson(x))
);
}
我现在有一个案例,我想这样做,但也得到了 HTTP headers。所以我将 {observe: 'response'}
添加到 get
调用,然后 return 一个 Observable<HttpResponse<OrderDTO>>
...除了我不知道如何仍然做适当的 map
那里。有人可以帮我解决这个语法问题吗?
我认为您将从 http 调用中获得一个 returned HttpResponse 对象,您可以映射您想要的 HttpResponse 属性和响应主体以及 return 数组,例如
this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
.pipe(
map(resp =>
[resp.headers,resp.body])
).subscribe(([header,body])=>....);