簡體   English   中英

如何使用 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 返回一個嵌套的對象數組以及其他數據。 我試圖訪問 Make_Name 屬性數組但沒有成功。 我嘗試了各種可觀察的運算符,但似乎都不起作用。 我知道我可以切換到 Promise...但我想使用 observables...任何想法將不勝感激。

如果Results是一個數組,那么創建Make_Name屬性的數組所需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)
    );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM