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 件のコメント:
コメントを投稿