0

私はパブリックRESTfulAPIを使用しています。サービスはうまく機能しますが、WADLはどこにも見つかりませんでした。そのため、ストリームを受信したら、標準のDOMを使用して解析し、POJO(org.w3c.dom)に変換します。

しかし、数年前、私はSOAPサービスを使用し、Axis2を使用しました。そこでは、Axis2に付属のユーティリティを使用して、関連するクライアントクラスを生成し、サービスをJavaにマーシャリングすることができました。

WADLがあれば、同様のことができるREST用の同様のAPIがあるのだろうか。私が今それをする方法はそれほどひどくなくて速いです、それはただ時代遅れのようです。

4

1 に答える 1

2

まず、すべてのRESTfulサービスが自身のWADL記述を公開しているわけではありません。彼らにそうする必要はありません、そして何人かの人々はあなたがすることの説明を提供することはHATEOASの原則に違反していると強く感じる人もいます。しかし、それはあなたの観点からは本当に重要なことではありません。

必要なのは、渡されるXMLドキュメントのXSDスキーマを取得することです。完全なWADLが利用できない場合でも、スキーマが利用できる場合があります。それができない場合は、送信されるメッセージに基づいて書き込むことができます。(DOM解析をうまく行うには、実際にそこにあるデータについての良いアイデアがすでに必要です。残りは単なる構文です。)自分で作成する場合は、GUIオーサリングツールを使用します。いくつかのまともな無料のものがあり(私は過去にEclipse WTPのものを使用しましたが、それだけではありません)、ストレートテキストエディタでスキーマを手動で書くのは面倒です。

スキーマを取得したら、JAXB(具体的にはxjcツール)を介してスキーマをフィードします。これにより、バインディングクラスが生成されます。クライアント全体を作成するには、まだいくつかの作業を行う必要がありますが、うなり声のUnmarshaller作業を行うために利用できるため、メッセージの解析からグラインドを取り除くことができます。

于 2012-09-27T21:09:46.643 に答える