小编Jud*_*ing的帖子

Spring Data REST - 使用实体列表,Java HATEOAS客户端

我正在使用Spring Data REST 2.5.1,Jackson 2.8.0,Spring Boot 1.3.6.

我正试图通过RestTemplate从我的存储库中检索一个简单的实体列表.我可以在浏览器中找到终点,并获得预期的HAL数据.检索单个实体可以正常工作,如下所示.这些都使用默认的SDR端点(例如localhost:{port}/myEntity).

    ResponseEntity<Resource<MyEntity>> responseEntity =
    new RestTemplate()
        .exchange(
        uri + "/1",
            HttpMethod.GET,
            HttpEntity.EMPTY,
        new ParameterizedTypeReference<Resource<MyEntity>>() {}, port
        )
Run Code Online (Sandbox Code Playgroud)

或者新的RestTemplate().getForEntity(uri +"/ 1",MyEntity.class,port)

正如许多SO问题似乎表明的那样,找到检索列表的示例是一个问题.我试着ParameterizedTypeReferenceResources,Resource,MyEntity,数组列表.一切都没有运气.

        ResponseEntity<Resources<Resource<MyEntity>>> responseEntity =
            new RestTemplate()
                    .exchange(
                    uri,
                    HttpMethod.GET,
                    HttpEntity.EMPTY,
                    new ParameterizedTypeReference<Resources<Resource<MyEntity>>>() {}
            , port
            )
Run Code Online (Sandbox Code Playgroud)

当所谓的像上面几乎任何种类的Resources,Resource,List<MyEntity>,MyEntity,等等,ResponseEntity是空的.喜欢:

<200 OK,Resources { content: [], links: [] },{Server=[Apache-Coyote/1.1], Content-Type=[application/json;charset=UTF-8], Transfer-Encoding=[chunked], Date=[...]}>
Run Code Online (Sandbox Code Playgroud)

字符串JSON在浏览器中如下所示.

{
"_embedded" : {
"myEntities" : …
Run Code Online (Sandbox Code Playgroud)

rest spring-mvc spring-data-rest spring-hateoas

4
推荐指数
1
解决办法
6053
查看次数