如何使用Spring Data Rest公开resourceId

时间:2016-01-24 07:11:18

标签: spring spring-data-rest spring-hateoas hypermedia

我曾经暴露了在实体中用@Id注释的主键.ID字段只在资源路径上可见,但在JSON主体上不可见。

2 个答案:

答案 0 :(得分:12)

您可以使用实体级别的RepositoryRestConfigurerAdapter进行配置。

@Configuration
public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerAdapter {

    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
        config.exposeIdsFor(MyEntity.class);
    }
}

请注意使用这个你正在违反spring-data-rest的原则 - sdr促使超媒体能够通过使用链接在资源之间导航来使用API​​ - 这里你的资源被链接识别和引用,因此不再需要ID。在客户端上使用ID会将构建资源链接的复杂性推向客户端。客户不应该为这些知识烦恼。

答案 1 :(得分:1)

最好的解决方案是不使用实体的ID,并使用超媒体提供的链接引用。 您只需要根据Spring Data Rest使用的HAL规范解析JSON。