私はREST WSを呼び出すDAOを設計する必要があります。 このWSは、指定されたユーザー名とパスワードからユーザー資格情報を戻す必要があります。休憩DAO設計と例外処理
ケース1:ユーザーが見つかりました=> REST WSがhttpコード200と資格情報応答を送信します。
ケース2:ユーザーが見つかりませんでした=> REST WSはhttpコード400と原因のエラーオブジェクトを送信します。
ケース3:ユーザーは見つかりましたが、彼のアカウントは無効になっています=> REST WSはHTTPコード400とエラーオブジェクトを原因で送信します。
ケース4:REST WSはREST WS応答をマッピングするための私のDAOでの最良の方法は何
利用できないのですか?
1 - エラーオブジェクトのケースを処理するために私のDAOでfuntionnalチェック例外をスローし、通常の場合にクレデンシャル応答オブジェクトを返します。 REST WSが利用できないときは、未チェックの例外がスローされます
2 - サービス層のジョブであるため、DAOにfunctionnal例外をスローしません。私は、REST WSが返すもの、つまり証明書の応答とラップされたオブジェクトのエラー応答などを返します。サービスレイヤにこれらのオブジェクトが正しいジョブを行うかどうかをチェックさせます。 REST WSが利用できないときは、チェックされていない例外がスローされます。
3 - 私はエラーの場合にチェックされていない例外をスローします。そして私はCredentialsの返答のみを返します。
ありがとうございます。
ok、ありがとう、チェックされていない選択についてはチェックされていませんか?なぜ1で3ではなく? – rico
私の_personal_プリファレンスは、サービス層がその間に何か価値のあることを行うことができるときに常にチェックをスローします。これにより、サービス層の開発者は、実際にユーザーが見つからないときに何が起こるかを考えるようになります。ビジネスルールによっては99%の特別なロジックが発生するはずです。私の経験では、「見つからない」タイプの条件をチェックしないで投げるのは、通常、実行時にNPEに巻き込まれるだけです。コンパイル時のチェックが本当に好きです。 – Brad