13

Web サービスを開発するためのより良いアプローチはどれですか。最初に契約するか、最後に契約するか
それぞれの長所と短所は何ですか?

あなたはどちらの経験がありますか?

編集 この質問は、Web サービスの実装に関するものです (読み取り: SOAP)。問題は、実装クラスを最初にコーディングし、そこから WSDL および XSD スキーマを生成するか (最後にコントラクト)、または WSDL および XSD スキーマを最初に記述し、生成された実装クラス (コントラクトが最初)

4

3 に答える 3

6

私は両方のアプローチを使用しました。私の提案は、コントラクトファーストスキーマを使用することですが、最初にWSDLをコーディングします。

WSDLファイルの作成には、バインディングやポートなどの奇妙なニュアンスがたくさんあります。手作業ではなく、ツールでこれを実行したいと思います。これを行うのに役立つツールはありますが、どれもより単純なものはありません。

@ウェブサービス
公衆 ...

少なくとも、デプロイメントを検証できます。

XMLスキーマ言語は、Javaで記述できる言語よりもはるかに豊富であるため、スキーマについては、最初に契約を提案しました。私が通常挙げる例は、XMLスキーマが文字列のサイズを制限し、正規表現パターンを適用できることを示しています。Javaとアノテーションでそれを行うと、少し面倒に見えます。

最初に契約としてスキーマを実行するもう1つの利点は、スキーマファイルをHTMLドキュメントに変換するツールが存在することです。

XJCツールは、必要なクラスファイルを生成できます。ただし、最初にそれを行うことをお勧めします。

最終的には、生成されたWSDLファイルを取得し、代わりにそれを使用する必要があります。このようにして、wsimportを使用して、WSDLからスキーマまですべてが有効であることを確認できます。

@WebService実装でwsdlLocation属性を使用してWSDLファイルをデプロイできます。ユーザーがサーバーにWSDLを要求すると、アプリケーションサーバーがバインディングデータを修正しますが、アノテーションは保持されます。そうしないと、要求されたWSDLファイルに注釈が表示されません。

于 2010-10-01T18:25:50.173 に答える
1

答えは明確な「場合による」と思います。

問題は、コントラクトを作成して公開すると、それに拘束されることです。これにより、変更が難しくなります。不可能ではありませんが、難しいです。

一方、スキーマなどに慣れている場合は、コードよりもコントラクトを台無しにする方が簡単です。したがって、コントラクトにインクリメンタルな変更を加えることができます。

WSDL からコード スケルトンを生成するツールもありませんか? 私はほとんど肯定的です。その場合は、スキーマを「コード」項目にして、そこからコードを生成するのがよいでしょう。

于 2009-04-19T01:21:39.640 に答える