tmoreira2020
2/17/2016 - 4:43 AM

MainRestClient.java

	@Test
	public void test() {
		RestTemplate restTemplate = restTemplate();

		Link next = new Link("http://localhost:8080/v1/city?size=250&sort=name&name.dir=asc");

		do {
			System.out.println(next.getHref());
			ResponseEntity<PagedResources<City>> responseEntity = restTemplate.exchange(next.getHref(), HttpMethod.GET, null,
					new ParameterizedTypeReference<PagedResources<City>>() {
					});
			PagedResources<City> resources = responseEntity.getBody();

			for (City city : resources) {
				System.out.println(city.getName());
			}

			next = resources.getNextLink();

		} while (next != null);
	}

	private RestTemplate restTemplate() {
		ObjectMapper mapper = new ObjectMapper();
		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		mapper.registerModule(new Jackson2HalModule());

		MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
		converter.setSupportedMediaTypes(MediaType.parseMediaTypes("application/hal+json"));
		converter.setObjectMapper(mapper);

		return new RestTemplate(Collections.<HttpMessageConverter<?>> singletonList(converter));
	}