REST と SOAP の 2 つの Web サービスと対話するジャージー クライアント アプリケーションを作成しました。REST サービスによって提供される従業員データを使用して、SOAP サービスで新しいユーザーを作成します。
REST サービスは、Employee エンティティを返す JAX-RS (Jersey) アプリケーションです。
@Entity
@Table(name = "EMPLOYEE_TABLE")
@XmlRootElement
public class Employee implements Serializable {
...
}
エンティティ クラスのスキーマ定義を明示的に作成していません。
GET リクエストは、Employee エンティティの表現を返します。
GET /employees/100
<Employee id='100' providerId='3345'>
<Link type="application/xml" href="/employees/100" rel="self"/>
<Name>Doe, Dr. John</Name>
<Departments>
<Department id='10'><Name>Emergency Medicine</Name></Department>
<Department id='56'><Name>Behavioral Medicine</Name></Department>
</Departments>
</Employee>
SOAP サービス (BusinessObjects Enterprise Web サービス SDK) は、その使用を簡素化する Java クライアントを提供します。
Employee エンティティの XML 表現を解析して User クラスの適切なセッターに割り当てることはできますが、Jersey クライアント アプリケーションで (適切な注釈を使用して) Employee プロキシ クラスを作成する方がおそらく簡単でしょう。
質問:
- JAX-RS (具体的には、私の場合は Jersey) には、エンティティのスキーマ定義 (XSD 形式) を公開するメカニズムがありますか? WADL ドキュメントには、この種の情報は含まれていません。
- Employee リソース クラスを模倣する POJO クラス表現を手動で作成することもできますが、おそらく「ツール」を使用する必要があります。これにはどのようなオプションがありますか?
- 時間が経つにつれて、Employee エンティティに要素を追加する必要があるかもしれません。これは、RESTful サービスの新しいバージョンを作成する必要があるということですか?
- スキーマ定義を自動的に生成して公開するようにジャージーを構成でき、従業員を変更するとスキーマ定義が変更されると仮定すると、従業員エンティティは未承認の変更を防ぐためのインターフェースを実装する必要がありますか?