ゴール
Yahoo の HotJobs Resume Search REST APIの Java クライアント。
バックグラウンド
私は、SOAP API 用の Web サービス クライアントを作成することに慣れています。そこでは、wsimportがプロキシ スタブを生成し、オフにして実行しています。しかし、これは私にとって新しい REST API です。
詳細
- 残りのAPI
- WADLなし
- 正式な XML スキーマ (XSD または DTD ファイル) はありません。XML リクエスト/レスポンス ペアの例があります。
- サンプルコードは提供されていません
進捗
質問Rest clients for Javaを見ましたか? 、しかし、そこにある自動化されたソリューションは、スキーマと REST API を生成するために POJO で呼び出された JAXB を使用して、サーバーとクライアントの両方を提供していることを前提としています。
Jersey ( JAX-RS実装)を使用して、手動でHTTPリクエストを作成できました:
import com.sun.jersey.api.client.*;
...
ClientConfig clientConfig = new DefaultClientConfig();
Client client = Client.create(clientConfig);
WebResource webResource = client.resource("https://hj.yahooapis.com/v1/HJAuthTokens");
webResource.accept("application/xml");
// body is a hard-coded string, with replacements for the variable bits
String response = webResource.post(String.class, body);
// parse response into a org.w3c.dom.Document
// interface with Document via XPATH, or write my own POJO mappings
応答は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<Response>
<ResponseCode>0</ResponseCode>
<ResponseMessage>Login successful</ResponseMessage>
<Token>NTlEMTdFNjk3Qjg4NUJBNDA3MkJFOTI3NzJEMTdDNDU7bG9jYWxob3N0LmVnbGJwLmNvcnAueWFob28uY29tO0pVNWpzRGRhN3VhSS4yQVRqRi4wWE5jTWl0RHVVYzQyX3luYWd1TjIxaGx6U0lhTXN3LS07NjY2MzM1OzIzNDY3NTsxMjA5MDE2OTE5OzZCM1RBMVNudHdLbl9VdFFKMFEydWctLQ==</Token>
</Response>
または、次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<yahoo:error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" xml:lang="en-US">
<yahoo:description>description</yahoo:description>
<yahoo:detail>
<ErrorCode>errorCode</ErrorCode>
</yahoo:detail>
</yahoo:error>