Webサービスをコーディングするとき、戻り値をどのように構造化しますか?エラー状態(予期しないものや予期しないもの)はどのように扱いますか? intのような単純なものを返すのであれば、それを返すか、より複雑なオブジェクトに埋め込みますか? 1つのサービス内のすべてのWebメソッドが単一のクラスのインスタンスを返すか、メソッドごとにカスタム戻り値クラスを作成しますか?Webメソッドの戻り値に適したデザインパターンは何ですか?
9
A
答えて
8
私はリクエスト/レスポンスオブジェクトパターンが好きです。ここでは、単純なパブリックプロパティを持つ1つの[Operation] Requestクラスに引数をカプセル化します。
AddCustomerRequestと同様に、AddCustomerResponseを返します。
応答には、操作の成功/失敗に関する情報、UIで使用される可能性のあるメッセージ、場合によっては追加された顧客のIDなどが含まれます。
もう1つの良いパターンは、これらがすべて一般的なエンドポイントがProcess(params IMessage [] messages)のような単純なIMessageインターフェイスから派生するようにすることです。同じ方法で複数の操作を渡すことができますウェブリクエスト。
1
+1ベンの答えです。
さらに、包括的な応答では、複数のエラー/警告項目が許可されているので、できるだけ包括的かつ実用的な返信ができるようにすることをお勧めします。 (最初のエラーメッセージの後に停止したコンパイラを使用するか、できるだけ多くのことを伝えたコンパイラを使用しますか?)
1
SOAP Webサービスを使用している場合は、SOAP faultsがエラーの詳細を返す標準的な方法です。フォルトメッセージは、あなたが好きな追加の詳細を返すことができます。
0
Soapフォルトは、呼び出し元のアプリケーションがSoapクライアントである標準的な方法です。 XMLHTTPを使用するCOMクライアントのように、SoapがXMLとして解析され、Soapフォルトが簡単に処理できない場合があります。まだ投票できませんが、もう1つの+1は@Ben Scheirmanです。
関連する問題
- 1. 戻り値はブール値のメソッドで正確に何をしますか?
- 2. 応答のjsonメソッドの戻り値の型は何ですか?
- 3. Deleteメソッドの戻り値は何ですか?
- 4. subprocess.call()の戻り値は何ですか?
- 5. アプリをスキンするのに最適なデザインパターンは何ですか?
- 6. 戻り値の型がvoidのメソッドは正確に何を返しますか?
- 7. メソッドからの戻り値
- 8. 戻り値()メソッド
- 9. jQueryの$()の戻り値で動作するメソッドは何ですか?
- 10. マルチモジュールウェブアプリケーションに適したデザインパターン
- 11. 'カラー'構造に最適なデザインパターンは何ですか?
- 12. これに最適なデザインパターンは何ですか?
- 13. Webメソッドの戻り値に失敗OKしかし、火災機能ここ
- 14. 戻り値を含むエラーを含めるためのデザインパターン
- 15. DICOMでブール値に最も適した値は何ですか?
- 16. javascriptでデザインパターンを適用する方法は何ですか?
- 17. 戻り値はループ内で正確に何をしますか?
- 18. Webサービスに適したXMLタイプは何ですか?テーブルと
- 19. メソッドに戻り値が必要なのはなぜですか?
- 20. Webサービスメソッドのキャッシュ戻り値
- 21. コルーチンの戻り値に "n"とは何ですか?
- 22. メソッドを戻り値の型または引数で整理しますか?
- 23. 失敗したフォークのシステムコールの後のraxの戻り値は何ですか?
- 24. クラス戻り値の型メソッド
- 25. ASP.NET MVCのアーキテクチャとデザインパターンに適したポッドキャストはありますか?
- 26. メソッドは呼び出し元メソッドで戻り値を返しますか? c#
- 27. VC2008での戻り値の最適化
- 28. Rubyでは、ループ内の戻り値は何ですか?
- 29. 適用チェーン戻り値の型は
- 30. 戻り値の最適化 - - C++デストラクタは