我已经完成了为我的应用程序实现RestAPI。现在我正在尝试使用Angular开发前端应用程序。每个RestAPI都返回一个单独的JSON对象。而不是为每个http请求实现对单个RestAPI的每次调用,有没有办法实现一个单一的接口来很好地调用RestAPI?具体来说,在下面,
this.http.get('http://a.b.c/api/people/1').subscribe(json => makePerson(json));
this.http.get('http://a.b.c/api/animal/1').subscribe(json => makeAnimal(json));
this.http.get('http://a.b.c/api/flower/1').subscribe(json => makeFlower(json));
这里有两种不同的方法,但是我可以生成一个接口来通过传入API URL和类名来包含这3个方法调用吗?
this.call_restapi(url, 'Person');
this.call_restapi(url, 'Animal');
this.call_restapi(url, 'Flower');
你能对此有所了解吗?
答案 0 :(得分:1)
您可以在订阅者中添加switch语句,并使用参数来导航GET请求和切换语句。
get(type: string) {
const url: string = 'http://a.b.c/api/' + type + '/1';
this.http.get(url).subscribe(
(json) => {
switch(type) {
case('people'):
this.makePerson(json));
break;
case('animal'):
this.makeAnimal(json));
break;
case('flower'):
this.makeFlower(json);
break;
default:
break;
}
});
}