我想知道HttpClient是否可以输入检查嵌套接口。
例如我使用github api。如果您检查此请求: https://api.github.com/search/repositories?q=angular 回复你会发现实际的发现是在一个数组中('items')。
所以我想提取 items 数组,并且还想存储 total_count 。
我提出了这个界面:
export interface Repository {
name: string;
full_name: string;
size: string;
forks_count: string;
created_at: string;
url: string;
description: string;
stargazers_count: string;
open_issues_count: string;
}
和...
import { Repository } from "./repository.model";
export interface ReposirotySearchResponse {
items: Repository[];
total_count: number;
}
基于 ReposirotySearchResponse 我想用这个提取上述回复:
return this._http.get<ReposirotySearchResponse>('https://api.github.com/search/repositories?q=angular');
但遗憾的是,angular不能解析给定类型的响应。
我错过了什么吗?
答案 0 :(得分:2)
Duncan,http.get为您提供完整的回复,因此如果您想获得其他回复,您必须“映射”回复
return this._http.get<ReposirotySearchResponse>('https://api.github.com/search/repositories?q=angular')
.map((result:any)=>{
console.log(result); //<--there the complete response
return{
total_count:result.total_count,
items:result.items.map((item:any)=>{
return {
name: item.name,
full_name: item.full_name,
size: item.size,
forks_count: item.forks_count,
created_at: item.created_at,
url: item.url,
description: item.description,
stargazers_count: item.stargazers_count,
open_issues_count: item.open_issues_count
}
})
}
})
当你订阅时,你只收到你想要的fiels