ここではH-InvDB Web serviceについてご紹介します。
H-InvDB Web serviceでは、H-InvDBのデータを利用することができる様々なAPIを提供しています。
どなたでもH-InvDB Web serviceを利用したアプリケーションの開発が可能になります。
H-InvDB Web serviceでは、REST-API / SOAP-APIを提供しています。
各APIの詳細については以下のページをご参照ください。
REST API リスト
SOAP API リスト
H-InvDB Web serviceでは、REST/SOAP方式のAPIを提供しています。
REST APIを使用するには、HTTPコネクションを使用できる環境が必要になります。
また、ブラウザや、PerlやJavaのようなプログラミング言語が必要です。
本サービスにアクセスするには、
http://h-invitational.jp/hinv/hws/keyword_search.php?query=cancer |
SOAP APIを使用するには、各プログラミング言語のSOAP対応ライブラリをご使用ください。
WSDL文書は
http://h-invitational.jp/hinv/hws/API名?wsdl |
もし"Homo sapiens" のように、英数字以外が含まれるクエリーを実行したい場合、以下のようにエンコードを行ってください。(例はjavaです)
String query = "query=" + URLEncoder.encode("Homo sapiens","UTF-8"); |
RESTを実行する場合、コネクション(接続)を確立しつづける必要がありますが、
非同期に実行することも可能です。非同期に実行させることにより、クライアント側の資源を有効利用することができます。
非同期にメソッドを実行する方法についてLWPを用いた方法を紹介します。
メソッド名の最後にAsyncとなっているメソッド(例.keyword_search)が、非同期通信用のものになります
Step1.非同期通信を行います
use LWP::UserAgent; $ua = new LWP::UserAgent; # make request my $req = new HTTP::Request POST => "http://h-invitational.jp/hinv/hws/keyword_search.php"; $req->content_type("application/x-www-form-urlencoded"); # set parameters $req->content("query=HIT00002218*&start=1&end=100"); # send request and get response. my $res = $ua->request($req); # show response. print $res->content; |
Your requestID is:20070717144558241 |
Step 2. 結果の取得を行います。
use LWP::UserAgent; $ua = new LWP::UserAgent; # make request my $req = new HTTP::Request POST => "http://h-invitational.jp/hinv/hws/keyword_search.php"; $req->content_type("application/x-www-form-urlencoded"); # set parameters $req->content("query=HIT00002218*&start=1&end=100"); # send request and get response. my $res = $ua->request($req); # show response. print $res->content; |
Perl / PHP / Ruby / JavaからREST API / SOAP APIを使用してデータ取得を行うサンプルプログラムです。