我正在尝试使用来自Angular 8服务的propublica.org大会api获取信息。
是第一次使用Http调用外部Web api时,我在阅读这里的文档感到很苦恼:https://projects.propublica.org/api-docs/congress-api/#requests
我能找到的最好的方法显示了如何拨打电话在这里:https://gist.github.com/renderorange/f2a8bd0ffc6eeefe79f13de684631387
但是我不知道如何将其转换为使用angular的HttpClient。
我正在从组件内部调用服务。我已经建立了它的结构。但是,我对propublica在其文档中对jsonp的引用感到困惑。我尝试使用angular的jsonp,但与上面链接中的示例javascript调用无关。
在组件中,我正在尝试记录响应
this.CongressService
.getStateCounts()
.subscribe(data=>console.log(data));
服务
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'
import { PropublicaKey } from '../../assets/config/propublica'
@Injectable({
providedIn: 'root'
})
export class CongressService {
constructor(private HttpClient:HttpClient) { }
getStateCounts() {
let options = {
url: 'https://api.propublica.org/congress/v1/states/members/party.json',
headers: {
'X-API-Key': 'my-api-key'
},
json: true
};
return this.HttpClient.jsonp(options.url, headers);
}
}
目标是记录数据,因此我知道api调用有效。
感谢您的帮助!
返回this.HttpClient.get(url,options)