我正在用angular2编写一个应用程序,我想模拟后端,这个时候还没准备好。
这是我的服务:
import { Injectable } from '@angular/core';
import { Http, Headers, Response, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Item } from './item';
@Injectable()
export class ItemService {
private itemUrl = 'api/item'; // URL to web api
constructor(private http: Http) { }
getItems(): Observable<Item[]> {
return this.http
.get(this.itemUrl)
.map(this.extractData)
.catch(this.handleError);
}
addItem(name: string): Observable<Item> {
let body = JSON.stringify({ name });
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.itemUrl, body, options)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
return body.data || {};
}
private handleError(error: any) {
let errMsg = 'error';
return Observable.throw(errMsg);
}
}
我想拦截对&#34; itemUrl&#34;的每一个请求。在我的TypeScript代码中,并在通常的列表上进行简单的操作。
答案 0 :(得分:1)
您应该使用angular-in-memory-web-api
。有关示例,请参阅this post。另请查看the documentation。从长远来看,使用它可能会比尝试使用Angular的MockBackend
节省更多时间。您可以使用in-memory-web-api进行单元测试和开发。