在spring-hateoas中有PagedResources而不是SlicedResources,是否有推荐的方法来处理Slice Metadata?

时间:2017-01-31 12:06:35

标签: java spring spring-mvc spring-hateoas

我在spring-hateoas repository in github中也看到了类似的问题,但答案是在stackoverflow中提问。

我在我的项目中使用spring-hateoas PagedResources来获取API端点的返回响应。我现在有一个API端点,其中计数信息将不可用,所以我使用的是Slice而不是Page。但是,在构建响应时,我没有找到SlicedResources,只有PagedResources类,而PagedResources类需要我不想查询或发送的信息(如元素总数)。

这是我为页面创建元数据响应的方法:

final PageMetadata metadata = new PageMetadata(page.getSize(), page.getNumber(), page.getTotalElements(), page.getTotalPages());

我想知道是否有推荐的方法来做我正在为页面做的事情,而不是切片,或者如果这只是在spring-hateoas中没有实现。

1 个答案:

答案 0 :(得分:0)

我知道这个问题已经过去了一段时间,但仍然有人在问这个问题,所以我在最近发布的 HATEOAS 中记录了我的发现。

从 HATEHOAS 1.2 开始,不支持诸如

    @Override
    public SlicedModel<EntityModel<T>> toModel(Slice<T> entity) {
        return toModel(entity, EntityModel::of);
    }

并且 git 中 spring-data-commons 项目中的问题 DATACMNS-845 是开放的,但似乎处于休眠状态,所以我想说这很少有机会看到曙光。 我可能遗漏了一些东西,但考虑到为大型集合获取页面的所有信息可能是一项昂贵的操作,我发现提供对切片的支持会很好。