JavaでREST
RESTクライアントとしてJavaを選ぶことは正直言って正しい Tech Choiceとは思えないが,それでも現実的にそれをやらざる得ないことも多い.
とはいえ,それでもCommons等を使ってなんとかそれなりに書くことはできる(最もPythonやgroovyの非ではないが).
JerseyやRestEasy等といったRESTライブラリもあるが,ここではApache HttpComponentsを使う.
サンプル
ここではMongoDBのRESTインターフェースに接続し,テストDBのテスト用コレクションに対してクエリをかける例を示す.
MongoDBはデフォルトではRESTインターフェースを有効化していないので,Mongodを起動する際 --restパラメータを渡す必要がある.
package org.tanuneko.restclient;
import java.io.IOException;
import java.io.StringWriter;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MongoRestClient {
private static Logger logger = LoggerFactory.getLogger( MongoRestClient.class );
public static void queryFind( String dbName, String collection, String userName ) {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet req = new HttpGet( "http://127.0.0.1:28017/" + dbName + "/" + collection + "/?filter_user_id=" + userName );
try {
HttpResponse res = httpClient.execute( req );
StringWriter sw = new StringWriter();
IOUtils.copy( res.getEntity().getContent(), sw );
logger.info( sw.toString() );
} catch( IOException ioE ) {
logger.error( ioE.getMessage(), ioE );
System.exit( 1 );
}
}
public static void main(String args[]) {
queryFind( "DevTest", "DevTest", "tanu" );
}
}
MongoDBのRESTインターフェースについてはここを参照されたし.
0 件のコメント:
コメントを投稿