ExParamsSchema.Schema.Validator (ex_params_schema v0.1.0)

Copy Markdown View Source

JSON Schema による検証結果を ExParamsSchema のエラー形式へ変換します。

ExJsonSchema との統合に関する内部モジュールです。通常は parse/2 または parse_detailed/2 を使用してください。

Summary

Functions

JSON 互換のデータを検証し、最初の宣言に対応するエラー理由へ正規化します。

JSON 互換のデータを検証し、すべてのエラーをパス付きで返します。

Functions

validate(schema, data)

@spec validate(ExParamsSchema.Schema.t(), map()) ::
  :ok | {:error, ExParamsSchema.error_reason()}

JSON 互換のデータを検証し、最初の宣言に対応するエラー理由へ正規化します。

iex> schema = ExParamsSchema.compile!(%{count: {:integer, minimum: 1, error: :invalid_count}})
iex> ExParamsSchema.Schema.Validator.validate(schema, %{"count" => 2})
:ok
iex> ExParamsSchema.Schema.Validator.validate(schema, %{"count" => 0})
{:error, :invalid_count}

validate_detailed(schema, data)

@spec validate_detailed(ExParamsSchema.Schema.t(), map()) ::
  :ok | {:error, [ExParamsSchema.ValidationError.t()]}

JSON 互換のデータを検証し、すべてのエラーをパス付きで返します。

iex> schema = ExParamsSchema.compile!(%{count: {:integer, minimum: 1, error: :invalid_count}})
iex> {:error, [error]} = ExParamsSchema.Schema.Validator.validate_detailed(schema, %{"count" => 0})
iex> {error.path, error.keyword, error.reason}
{["count"], :minimum, :invalid_count}