如何使用 nestjs httpservice (axios) 获取嵌套的 api 数据

how to get nested api data using nestjs httpservice (axios)

我正在使用 nestjs HttpService.get 从以下 API:

检索数据
 getVehicleMake(): Observable<AxiosResponse<any>> {
   return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
                 .pipe(
                       map(response => response.data.Results),
                       map(obj => obj.Make_Name),
                       );
}

API returns 嵌套的对象数组等数据。我试图访问 Make_Name 属性 的数组但没有成功。我尝试了各种可观察运算符 none 似乎有效。我知道我可以切换到 Promise...但我想使用 observables...任何想法将不胜感激。

如果 Results 是一个数组,创建 Make_Name 属性 的数组需要做的是在 Results 属性。鉴于上述情况,您有两种方法可以做到这一点。

选项 1:在一个 map 函数中执行所有操作

getVehicleMake(): Observable<AxiosResponse<any>> {
  return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
    .pipe(
      map(response => response.data.Results.map(result => result.Make_Name)
    );
}

选项 2:使用两个 map 函数分别获取数据并正确映射它

getVehicleMake(): Observable<AxiosResponse<any>> {
  return  this.httpService.get('https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json')
    .pipe(
      map(response => response.data.Results),
      map((results) => results.map(result => result.Make_Name)
    );
}