質問

Web サービスをコーディングするとき、戻り値をどのように構成しますか?エラー状態 (予期されるものと予期しないもの) をどのように処理しますか?int のような単純なものを返す場合、それをそのまま返すのでしょうか、それともより複雑なオブジェクトに埋め込むのでしょうか?1 つのサービス内のすべての Web メソッドは単一クラスのインスタンスを返しますか、それともメソッドごとにカスタムの戻り値クラスを作成しますか?

役に立ちましたか?

解決

私は、単純なパブリック プロパティを持つ単一の [Operation]Request クラスに引数をカプセル化する、Request/Response オブジェクト パターンが好きです。

AddCustomerResponse を返す AddCustomerRequest のようなもの。

応答には、操作の成功/失敗に関する情報、UI で使用される可能性のあるメッセージ、追加された顧客の ID などの情報が含まれる場合があります。

もう 1 つの良いパターンは、これらをすべて単純な IMessage インターフェイスから派生させることです。一般的なエンドポイントは Process(params IMessage[]messages)... のようなものになります。こうすることで、同じ Web リクエストで複数の操作を渡すことができます。

他のヒント

ベンの答えに +1。

さらに、返信ができるだけ包括的で実用的なものになるように、一般的な応答で複数のエラー/警告項目を許可することを検討することをお勧めします。(最初のエラー メッセージの後に停止するコンパイラを使用しますか? それとも、可能な限りエラー メッセージを表示するコンパイラを使用しますか?)

SOAP Web サービスを使用している場合は、 SOAP 障害 これは、エラーの詳細を返す標準的な方法であり、障害メッセージは任意の追加の詳細を返すことができます。

Soap フォールトは、呼び出し側アプリケーションが Soap クライアントである場合の標準的な方法です。XMLHTTP を使用する COM クライアントなど、Soap が XML として解析され、Soap エラーを簡単に処理できない場合があります。まだ投票できませんが、@Ben Scheirman にもう一度 +1 を付けます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top