HTTP Web Service Consumption: URI parameters & URI variables building

While consuming simple HTTP API or RESTful API, we usually build URL with parameters before calling it.

Spring RestTemplate is a wonderful library making this easy and delicious for developers.

Simple APIs (no JSON or XML just parameters in the URL) are presented (most of the time) in 2 forms:

http://api.zoumanatraore.fr?id=zoumana&action=compute&target=bitcoins

http://api.zoumanatraore.fr/id/zoumana/action/compute/target/bitcoins

Building URL parameters query for RestTemplate

RestTemplate restClient = new RestTemplate();
UriComponentsBuilder builder;
		try {
			builder = UriComponentsBuilder.fromHttpUrl(baseUrl)
			        .queryParam("id", "zoumana")
			        .queryParam("action", "compute")
			        .queryParam("target", "bitcoins");
		} catch (UnsupportedEncodingException e) {
			log.error("Error occurred: "+e);
			return;
		}
		
HttpEntity<String> result = restClient.exchange(builder.build().toUri(), HttpMethod.GET, entity, String.class);

Building URL variables query for RestTemplate

Map<String, String> vars = new HashMap<String, String>();
vars.put("id", "zoumana");
var.put("action", "compute");
var.put("target", "bitcoins");
baseUrl+="/id/{id}/action/{action}/target/{target}";	
ResponseEntity<String>  result = restClient.getForEntity(baseUrl, String.class, vars)

Javadoc for Spring RestTemplate

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s