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/