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

带Traverson的Spring HATEOAS

邹德泽
2023-03-14

我使用的是spring hateoas:0.18.0。使用Spring防尘套释放:1.2.5。发布

调用我的Web服务并通过HAL链接,我使用Traverson Client(受Traverson JavaScript库启发的客户端服务遍历API)

使用Hypermedia和HateoasRest是新的

我的问题是什么时候需要使用PagedResources和Resource?

我在这里找到的示例Traverson客户端示例:

 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);

共有1个答案

鲜于玮
2023-03-14

它很简单:当您返回大量项目时使用PagedResources,当您返回单个项目时使用Resource。因此,当返回许多客户对象时,您可能希望对它们进行分页,并使用PagedResources

资源只是包装域对象并向其添加链接。如果您现在不需要链接并且您知道将来也不需要这些链接,您也可以不使用资源

PagedResources添加用于选择页码和页面大小的页面元数据。它还允许服务器发送有关页面总数和项目总数的信息。您可以要求分页资源向您发送页面大小为5的第2页,您将获得项目6、7、8、9和10。

 类似资料:
  • 我正在尝试为超媒体API实现一个spring android客户端,并以HAL格式响应。Spring HATEOAS参考文档描述了客户端服务遍历的实现,其灵感来自Traverson JavaScript库。我这样做: 但我在创建新的Traverson对象时遇到以下错误: 有人知道怎么修吗? 是否有其他/更好的方式支持android中的HAL响应?

  • 我有一个报告,我想在其中显示页脚,但不想显示页眉部分-在摘要带。我可以通过选中“带有页眉和页脚的摘要”来显示两者或不显示。

  • 现在我的问题是,如何在自定义的而不是自定义的中重写方法?我没有在这里公布我的代码,因为它与链接的代码本质上是相同的,只是我需要为子创建一个自定义的来代替,这样它就可以按照“pptang”的答案所述进行正确的度量。 否则,有没有比在第二个RecyclerView中使用1个RecyclerView更好的方法?只能有1个RecyclerView使用上述列表和每个中唯一项的网格填充活动/片段吗?

  • 2)如果困境是真的,为什么事情要这样设置?谷歌计划反对TabHost和基于标签的多活动方法吗?多活动方法有什么不愉快的地方吗? 3)如果继续支持这两种方法,它们的优缺点是什么?如果我使用ActionBar+片段,我会遇到任何困难吗?例如,当我想让我的一个选项卡屏幕滑过/弹出一个额外的屏幕/片段时,我会不会在ActionBar中切换到/从选项卡中切换到选项卡?

  • 问题内容: 之间有什么区别 和 我都尝试过,但似乎都可以,但是我是在问,以防万一我需要小心(例如,%以外的单位等)。 问题答案: 这完全是关于HTML标记的真实有效性。这是W3C(WWW联盟)的工作目的。许多事情可能都在HTML中起作用,但是必须进行验证才能被网络浏览器更仔细地识别。您甚至可以在开头和结尾处省略and 标记,但是完全不建议这样做,没有人这样做,它被视为“错误代码”。 因此,将它们放

  • 根据Spring网站上的这个教程,我知道了如何使用Stomp和Spring4建立一个基于WebSocket的应用程序。在客户端,我们有: 在服务器端,控制器中有以下内容: 现在,我明白了确保如果消息发送到目标,那么将调用方法。由于订阅了,将消息发送回。 那么,有什么方法可以用Spring4、SockJS和没有跺脚的情况下做到这一点呢?还是Spring4WebSocket只支持stomp?