1

私はProduct、DAOレイヤーによって(Salatを使用して)返されるケースクラスを持っています。製品を初めて作成しているユーザーの製品ステータスは、(製品の) フィールドが必須ではない「下書き」のままです。

製品の 10 個の属性を検証し、すべての検証エラーを 1 つのエンティティに蓄積してから、JSON 形式で一度にすべてのエラーをフロントエンドに渡すための最良の機能的な方法は何ですか?

4

2 に答える 2

3

質問の核心はエラーを蓄積する方法だと思います.JSONフォーマットは別の問題であり、エラーをどのように収集したかには依存しません.

それが本当に単なる検証の問題である場合は、一連のメソッドを持つことができます

def problemWithX: Option[String] = ...

Some(errorMessage)それらが無効な場合、または問題がない場合に返されNoneます。次に、それは次のように簡単です

List(problemWithX, problemWithY, ...).flatten

すべてのエラーのリストを作成します。リストが空の場合は、問題ありません。そうでない場合は、エラーがリストされています。適切なエラー レポートを作成するのは、problemWithXメソッドの仕事です。もちろん、単に文字列が必要なのか、それともより複雑な情報が必要なのかを判断する必要があります。Invalid(異なる条件を処理するために、特性を定義し、クラスにそれを拡張させる必要さえあるかもしれません。)

于 2013-02-16T15:35:56.933 に答える
1

これはまさに ScalaZ のValidation型の目的です。

于 2013-02-16T17:23:51.260 に答える