Spring 3.0 RestTemplate API を試す

RestTemplate API を使って Twitter の TimeLine を表示する簡単なサンプルを作ってみる。


まずは、以下のMaven検索サイトで最新のものを調べた。
http://mvnrepository.com/artifact/org.springframework


pom.xml に「spring-web」を追加する。

<dependencies>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-web</artifactId>
	<version>3.0.6.RELEASE</version>
</dependency>
</dependencies>


次にソースコード


Spring3RestClientTest.java

package learn;

import org.springframework.web.client.RestTemplate;

public class Spring3RestClientTest {
	public static void main(String[] args) {
		RestTemplate restTemplate = new RestTemplate();
		String response = restTemplate.getForObject("http://twitter.com/statuses/user_timeline/{user}.json?count={count}", String.class, "masason", "10");
		System.out.println("Response: " + response);
	}
}

これでツイートを取得して表示することができる。


getForObjectメソッドは

getForObject(URI url, Class<T> responseType)
getForObject(String url, Class<T> responseType, Object... urlVariables)
getForObject(String url, Class<T> responseType, Map<String, ?> urlVariables)

が用意されている。
URLパラメータの部分は以下のようにMapで渡してもよい。

Map<String, String> vars = new HashMap<String, String>();
vars.put("user", "masason");
vars.put("count", "10");
String response = restTemplate.getForObject("http://twitter.com/statuses/user_timeline/{user}.json?count={count}", String.class, vars);


HTTPクライアントが簡単に書けて便利ですね。


参考:
http://blog.springsource.org/2009/03/27/rest-in-spring-3-resttemplate/
http://www.ibm.com/developerworks/jp/web/library/wa-restful/