如何实现多个API的通用接口?

时间:2017-12-29 17:29:29

标签: angular interface endpoints

我已经完成了为我的应用程序实现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');

你能对此有所了解吗?

1 个答案:

答案 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;
      }

    });
  }