Project

General

Profile

1
package eu.dnetlib.api.client;
2

    
3
import java.net.URI;
4
import java.net.URISyntaxException;
5

    
6
import javax.xml.transform.Source;
7

    
8
import org.apache.commons.logging.Log;
9
import org.apache.commons.logging.LogFactory;
10
import org.apache.http.client.utils.URIBuilder;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.web.client.RestTemplate;
13

    
14
public class ApiClientImpl implements ApiClient {
15

    
16
	private static final Log log = LogFactory.getLog(ApiClientImpl.class); // NOPMD by marko on 11/24/08 5:02 PM
17

    
18
	@Autowired
19
	private RestTemplate restTemplate;
20

    
21
	@Override
22
	public String doRequest(final EntityType entityType, final ApiModel apiModel, final URI requestURI) {
23
		log.debug("Request for entity: " + entityType + ", model: " + apiModel + ", URL: " + requestURI.toString());
24
		URIBuilder builder;
25
		try {
26
			builder = new URIBuilder(requestURI);
27
			builder.addParameter("model", apiModel.name());
28
			return restTemplate.getForObject(builder.build(), String.class);
29
		} catch (URISyntaxException e) {
30
			throw new IllegalArgumentException(e);
31
		}
32

    
33
	}
34

    
35
	@Override
36
	public Source doRequestAsSource(final EntityType entityType, final ApiModel apiModel, final URI requestURI) {
37
		log.debug("Request for entity: " + entityType + ", model: " + apiModel + ", URL: " + requestURI.toString());
38
		URIBuilder builder;
39
		try {
40
			builder = new URIBuilder(requestURI);
41
			builder.addParameter("model", apiModel.name());
42
			return restTemplate.getForObject(builder.build(), Source.class);
43
		} catch (URISyntaxException e) {
44
			throw new IllegalArgumentException(e);
45
		}
46
	}
47

    
48
}
(2-2/4)