2016-09-18 2 views
0

Wenn ich einen Spring Data Rest Endpoint anrufe, erwarte ich, dass die Self Links und die zugehörigen Links in jedem Objekt angezeigt werden. Keine der Links erscheint.Fehlende Links in der Spring Data Rest Response mit RestTemplate

RestTemplate Setup:

@HystrixCommand(fallbackMethod = "getFallbackScenicList") 
@RequestMapping(value = "/s", method = RequestMethod.GET, produces= MediaType.APPLICATION_JSON_VALUE) 
public PagedResources<Scenic> scenic() { 
    String url = "http://vr-dms-an-scenic/scenic"; 
    ParameterizedTypeReference<PagedResources<Scenic>> ptr = new ParameterizedTypeReference<PagedResources<Scenic>>() {}; 

    ResponseEntity<PagedResources<Scenic>> responseEntity = 
     this.restTemplate.exchange(url,HttpMethod.GET, null, ptr, 0,100 
     ); 

    PagedResources<Scenic> resources = responseEntity.getBody(); 

    return resources; 
} 

erwartete Antwort:

{ 
    "_embedded": { 
     "scenic": [ 
      { 
       "id": 1, 
       "name": "Test1 scenic", 
       "description": "This is a description1 for displaying information while in development", 
       "shortDescription": "Short Description Scenic1", 
       "_links": { 
        "self": { 
         "href": "http://localhost:49218/scenic/1" 
        }, 
        "scenic": { 
         "href": "http://localhost:49218/scenic/1" 
        } 
       } 
      } 
     ] 
    }, 
    "_links": { 
     "self": { 
      "href": "http://localhost:49218/scenic" 
     }, 
     "profile": { 
      "href": "http://localhost:49218/profile/scenic" 
     }, 
     "search": { 
      "href": "http://localhost:49218/scenic/search" 
     } 
    }, 
    "page": { 
     "size": 20, 
     "totalElements": 1, 
     "totalPages": 1, 
     "number": 0 
    } 
} 

tatsächliche Antwort:

{ 
    "_embedded": { 
     "scenic": [ 
      { 
       "id": 1, 
       "name": "Test1 scenic", 
       "description": "This is a description1 for displaying information while in development", 
       "shortDescription": "Short Description Scenic1" 
      } 
     ] 
    }, 
    "_links": { 
     "self": { 
      "href": "http://localhost:49218/scenic" 
     }, 
     "profile": { 
      "href": "http://localhost:49218/profile/scenic" 
     }, 
     "search": { 
      "href": "http://localhost:49218/scenic/search" 
     } 
    }, 
    "page": { 
     "size": 20, 
     "totalElements": 1, 
     "totalPages": 1, 
     "number": 0 
    } 
} 

Antwort

2

Ich gehe davon aus, dass Scenic keine Links enthält. Also statt

PagedResources<Scenic> 

Sie wollen eigentlich

PagedResources<Resource<Scenic>> 
+0

Nun, das war einfach. Vielen Dank. – code

Verwandte Themen