我设法只需安装traverson和使用它的角服务:
npm install traverson
,然后在您的服务:
// imports
const traverson = require('traverson');
@Injectable()
export class Service {
public getData(): Observable<Data> {
const promise: Promise<Counterparty> = new Promise((resolve, reject) => {
traverson
.from('http://my-api.com')
// Add your traverson options here
.follow('link', 'other-link')
.getResource((error, data) => {
if (error) {
reject(error);
} else {
resolve(data);
});
}
return Observable.fromPromise(promise);
}
}
这里的问题是,没有最新的traverson typings,所以你有一个混合的JS/TS代码。
我没有设法直接使用observables,这就是为什么我通过承诺,这是非常简单的方式。
请注意,traverson使用自己的http客户端。如果你想使用的角度HTTP客户端,你需要创建一个桥梁类,实现了以下方法:
get(uri: string, options: any, callback: (err, response) => void);
del(uri: string, options: any, callback: (err, response) => void);
post(uri: string, options: any, callback: (err, response) => void);
put(uri: string, options: any, callback: (err, response) => void);
patch(uri: string, options: any, callback: (err, response) => void);
的options
是traverson选项。
希望这会有所帮助