我設法只需安裝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選項。
希望這會有所幫助