获取HATEOAS链接的最佳方法onInit()angular 4

时间:2017-06-26 12:29:12

标签: angular typescript

您好我想知道在我的应用程序开始时以角度4从Spring Data REST HATEOAS获取链接的最佳做法是什么。 我的api端点有所有链接的列表,我想在应用程序开始时将其保存在名称 - 值映射中。 例如:

`{
  "_links" : {
    "ticketTypes" : {
      "href" : "http://localhost:8080/api/v1/ticketTypes{?page,size,sort}",
      "templated" : true
    },
    "depositReceipts" : {
      "href" : "http://localhost:8080/api/v1/depositReceipts{?page,size,sort}",
      "templated" : true
    },
    "transitCertificates" : {
      "href" : "http://localhost:8080/api/v1/transitCertificates{?page,size,sort}",
      "templated" : true
    }
}`

在我的主应用程序组件的onInit()中,我执行调用以检索整个列表并且它可以正常工作。 为了遵循HATEOAS原则,我不应该通过手端点创建url。我应该做的是检索我需要从我的hashmap读取它的URI。 不幸的是,我不能以一种简单的方式做到这一点,因为每个组件都可以在创建带有url的hashmap之前尝试进行REST调用。

这是检索URL列表的服务方法:

getLinks() {

    this.http.get(this.url, this.http.setCommonOption())
    .map((response: Response) => response.json());
      .subscribe(response => {

        this.linksMap = response._links;

        (<any>Object).entries(this.linksMap).forEach(
          ([key, value]) => {console.log(key, value);
            this.linksMap2.push(new Link(key, value.href));
         }
        );
        console.log(this.linksMap2);
        this.charge = 1;
      })
  }

我想知道是否有最佳实践来解决我的问题。

0 个答案:

没有答案