IPアドレスを使用してARINから情報を読み取るJavaアプリケーションを作成しようとしています。ARINがRESTfulWebサービスを使用してIP情報を取得しているようですが、開始するために何をする必要があるのかわかりません。話している人もいればRESTLET
、話している人もいJAX-RS
ます。私を正しい方向に導くのを手伝ってくれませんか。ありがとう!
2 に答える
Restletには、リモートのRESTfulアプリケーションと対話するためのクライアントAPIもあります。詳細については、クラスClient、ClientResourceを参照してください。このためには、Restletディストリビューションから次のjarファイルが必要です。
- org.restlet:メインのRestletjar
- org.restlet.ext.xml:XMLのRestletサポート
- org.restlet.ext.json:JSONのRestletサポート。この場合、libraryフォルダーにあるJSONjarも必要です。
このアドレスhttps://www.arin.net/resources/whoisrws/whois_api.html#whoisrwsにあるドキュメントを使用する場合。使用できる簡単なRestletコードは次のとおりです。
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get();
// Display the XML content
System.out.println(repr.getText());
また
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN.txt");
Representation repr = cr.get();
// Display the text content
System.out.println(repr.getText());
Restletは、XMLレベルでのサポートも提供します。したがって、以下に説明するように、XMLに含まれるヒントに簡単な方法でアクセスできます。
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get();
DomRepresentation dRepr = new DomRepresentation(repr);
Node firstNameNode = dRepr.getNode("//firstName");
Node lastNameNode = dRepr.getNode("//lastName");
System.out.println(firstNameNode.getTextContent()+" "+lastNameNode.getTextContent());
RESTサービスでサポートされているように見えるため、最終的にコンテンツネゴシエーション(conneg)を処理できることに注意してください。
ClientResource cr = new ClientResource("http://whois.arin.net/rest/poc/KOSTE-ARIN");
Representation repr = cr.get(MediaType.APPLICATION_JSON);
この場合、表現オブジェクトにはJSON形式のデータが含まれています。DomRepresentationと同じように、この表現コンテンツを検査するJsonRepresentationがあります。
お役に立てば幸いです。ティエリー
問題は、RESTが何であるかをよく理解していないように見えることです(私が間違っている場合は申し訳ありません!)。RestletとJAX-RSはどちらもサーバー側に関連しています。
おそらくjersey-clientのようなものが必要です。これは、RESTfulWebサービスとの対話に役立つライブラリです。また、プレーンなJavaライブラリを使用してWebサービスへのHTTP呼び出しを行うこともできます。RESTは、その実装プロトコルに緊密にバインドされています。これは、WebサービスがHTTPで実装されている場合(ほとんどの場合)、Webサービスと対話するために特別なことは何も必要ないことを意味します。ただHTTP。
RESTとHTTP自体についてもっと学ぶことを強くお勧めします。