gpt4 book ai didi

hateoas - Spring HATEOAS 与 Traverson

转载 作者:行者123 更新时间:2023-12-03 22:45:16 34 4
gpt4 key购买 nike

我正在使用 spring-hateoas:0.18.0.RELEASE spring-boot:1.2.5.RELEASE

为了调用我的 Web 服务并通过 HAL 链接,我正在使用 特拉弗森客户端 (受 Traverson JavaScript 库启发的客户端服务遍历 API)

Spring Hateoas Traverson Documentation

使用 Hypermedia 和 HateoasRest 的新功能

我的问题是我什么时候需要使用 分页资源资源 ?

我在这里找到的示例 Traverson Client examples :

 final PagedResources<Resource<Customer>> resources = traverson
.follow("customers","search","findByFirstName")
.withTemplateParameters(parameters)
.toObject(new TypeReferences.PagedResourcesType<Resource<Customer>>(){});

我写的代码是:
ParameterizedTypeReference<Resource<ProjectJSON>> resourceParameterizedTypeReference = new
ParameterizedTypeReference<Resource<ProjectJSON>>() {};

Resource<ProjectJSON> projectJSONResource = traverson
.follow("projects")
.follow("$._embedded.projects[0]._links.self.href")
.toObject(resourceParameterizedTypeReference);

我知道这不是一回事,但是调用 时资源的最佳实践是什么? Traverson.toObject() 方法?

最佳答案

很简单:您使用 PagedResources当您退回大量元素时,您使用 Resource当您退回单个商品时。所以当返回很多Customer您可能希望对它们进行分页的对象,您可以使用 PagedResources<Resource<Customer>> .对于单个客户,它是 Resource<Customer> .
Resource只是包装域对象并添加链接到它。如果您现在不需要链接并且您知道将来也不需要这些链接,那么您可以不用 Resource以及。
PagedResources添加用于选择页码和页面大小的页面元数据。它还允许服务器发送有关总页数和项目总数的信息。您可以要求分页资源向您发送页面大小为 5 的第 2 页,您将获得第 6、7、8、9 和 10 项。

关于hateoas - Spring HATEOAS 与 Traverson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900097/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com