当前位置: 首页 > 知识库问答 >
问题:

使用HATEOAS支持Angular2

朱伯寅
2023-03-14

我有一个restful web服务,支持HATEOAS链接。当我打电话时“http://localhost:8080/v1/bookings/1225380?lock=true“链接我得到了以下资源URL。我想将这些超媒体与我的Angular2应用程序(最近升级到最终版本)集成。我发现很少有资源是在Angular1支持下实现的(链接-https://paulcwarren.wordpress.com/2015/04/03/role-based-spas-with-angularjs-and-spring-hateoas/, https://github.com/LuvDaSun/angular-hal/tree/master/src). 但我找不到Angular2的资源。

"links": [
  {
    "rel": "client",
    "href": "http://localhost:8080/v1/clients/10000"
  },
  {
    "rel": "passengers",
    "href": "http://localhost:8080/v1/bookings/1225380/passengers"
  },
  {
    "rel": "itinerary",
    "href": "http://localhost:8080/v1/bookings/1225380/itinerary"
  },
  {
    "rel": "self",
    "href": "http://localhost:8080/v1/bookings/1225380?lock=true"
  },
  {
    "rel": "clientBookingHistory",
    "href": "http://localhost:8080/v1/bookings/1225380/clientBookingHistory/10000"
  }
]

共有1个答案

段干飞翔
2023-03-14

您可以为此创建一个注入表,并使用此类代替角超文本传输协议类。在这里您可以过滤链接并使用正确的链接调用超文本传输协议。

@Injectable() 
export class Hypermedia {

   constructor(private http: Http) { }

   get(links: any[], rel: String, body?: any, options?: RequestOptionsArgs): Observable<Response> {
    var link = null;
    var request = null;

    // Find the right link
    links.forEach(function (_link) {
        if (_link.rel === rel) {
            link = _link
            return;
        }
    });

    return this.http.get(link.href);
}

}

提供此注入器并将其添加到需要的构造函数中

constructor(private hypermedia:Hypermedia)

然后您可以像通常调用http类一样简单地调用它

this.hypermedia.get(myHypermediaLinksArray,myRel)

希望这有助于:)

 类似资料:
  • 我想使用REST API的HAL格式来包含嵌入式资源。我在API中使用Spring HATEOAS,Spring HATEOAS似乎支持嵌入式资源;但是,没有关于如何使用此功能的文档或示例。 有人能提供一个如何使用Spring HATEOAS包含嵌入式资源的例子吗?

  • 我需要在Android 2中实现actionbar。我已经尝试了这篇文章,并按照这篇官方文章中提到的设置了支持库。 以下是我使用appcompat支持库实现ActionBar的步骤: 首先,我使用以下配置创建项目(我不创建图标和默认活动): 最低要求SDK: API 10: Android 2.3.3(姜饼) 目标SDK: API 19: Android 4.4 使用编译: API 10: And

  • Im使用CMake生成visual studio 2013解决方案。下一步我将尝试构建它,但出现以下错误: 构建NVCC(设备)对象模块/核心/CMakeFiles/cuda_compile.dir/src/cuda/Debug/cuda_compile_generated_gpu_mat.cu.obj nvcc致命:不支持的gpu体系结构“compute_11” 我尝试版本2.10和3.0与cu

  • 现在sslcontext返回SSLSOCKETFACTORY,我想使用SSLCertificateSocketFactory(对于sethostname方法)做什么..我希望问题是清楚的,如果不是让我知道或者随意说的更清楚

  • 我正在使用openssl检查是否存在tlsv1。3是否支持域列表。我已经编写了脚本,但脚本没有停止,它会等待我按CTRL D键,然后给我一个结果。这是scirpt 我还将echo与openssl结合使用,如下所示 注意:当我在终端上为单个站点运行命令时,我得到的结果没有键入CRTL D,但当我在脚本中使用loop和if语句时,它会等待我按下CTRL D。这真的很奇怪。 我还尝试了echo“q”|

  • 24.3. 使用JDK Timer支持类 另外一个调度任务的途径是使用JDK Timer对象。更多的关于Timer的信息可以在这里http://java.sun.com/docs/books/tutorial/essential/threads/timer.html找到。 上面讨论的概念仍可以应用于Timer的支持。你可以创建定制的timer或者调用某些方法的timer。包装timers的工作由T