Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、Anypoint Studio と XML エディターの両方で Validation Module によってサポートされる操作を設定する方法を示しています。
Is IP 操作では、特定の IP アドレスが有効であることを検証します。IPV4 アドレスと IPV6 アドレスの両方がサポートされています。IPV6 の場合は、この操作では完全表記と省略表記の両方のアドレスがサポートされますが、ポートが含まれるアドレスはサポートされません。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is IP] を選択します。
[Is IP] を Studio キャンバスにドラッグします。
[Is IP] 設定画面で、次のパラメーターを設定します。
Ip: payload
Message: The value provided is not a valid IP address.
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-ip ip="#[payload]" message="The value provided is not a valid IP address"/>
xml
Is URL 操作では、特定の文字列が URL として解釈できることを検証します。検証は java.net.URL
クラスの URL (文字列) コンストラクターを呼び出すことによって行われます。このコンストラクターで例外がスローされた場合、検証は失敗します。このコンストラクターが受け入れたすべての文字列は有効と見なされます。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is URL] を選択します。
[Is URL] を Studio キャンバスにドラッグします。
[Is URL] 設定画面で、[URL] 項目を vars.callbackUrl
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-url url="#[vars.callbackUrl]"/>
xml
Is blank string 操作では、指定された値が空の文字列であることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is blank string] を選択します。
[Is blank string] を Studio キャンバスにドラッグします。
[Is blank string] 設定画面で、[Value (値)] 項目を payload
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-blank-string value="#[payload]"/>
xml
Is elapsed 操作では、指定された初期時刻から特定の時間が経過していることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is elapsed] を選択します。
[Is elapsed] を Studio キャンバスにドラッグします。
[Is elapsed] 設定画面で、次のパラメーターを設定します。
Time: 20
Time unit (時間単位): SECONDS
Since: vars.initialTime
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-elapsed time="20" timeUnit="SECONDS" since="#[vars.initialTime]"/>
xml
Is email 操作では、特定のメールが有効であることを検証します。値のデフォルトはメールペイロードです。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is email] を選択します。
[Is email] を Studio キャンバスにドラッグします。
[Is email] 設定画面で、次のパラメーターを設定します。
Email: vars.email
Message: The value is not a valid email.
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-email email="#[vars.email]" message="The value is not a valid email"/>
xml
Is empty collection 操作では、指定された値が空のコレクションであることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is empty collection] を選択します。
[Is empty collection] を Studio キャンバスにドラッグします。
[Is empty collection] 設定画面で、[Value (値)] 項目を payload
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-empty-collection values="#[payload]"/>
xml
Is false 操作では、式が false
に評価されることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is false] を選択します。
[Is false] を Studio キャンバスにドラッグします。
[Is false] 設定画面で、[Expression (式)] 項目に Expression
を選択し、空の項目に #[vars.withFailures]
を追加します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-false expression="#[vars.withFailures]"/>
xml
Is not denied ip 操作では、特定の IP が拒否 IP リストに登録されていないことを検証します。IP 検索条件リストは、アプリケーション内でグローバルに定義することも、各バリデーターのインラインで定義することもできます。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is not denied ip] を選択します。
[Is not denied ip] を Studio キャンバスにドラッグします。
[Is not denied ip] 設定画面で、次のパラメーターを設定します。
Ip address (IP アドレス): vars.ip
Deny list (拒否リスト): Edit inline
Ips: Edit inline
プラス記号 (+) をクリックして IP 値ウィンドウを開きます。
[Value (値)] 項目を Valid IP
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<flow name="flow_denylist_ipv6">
<validation:is-not-denied-ip denyList="list_ipv6" ipAddress="#[vars.ip]"/>
<set-payload value="Valid IP"/>
</flow>
xml
Is not blank string では、指定された値が空の文字列でないことを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is not blank string] を選択します。
[Is not blank string] を Studio キャンバスにドラッグします。
[Is not blank string] 設定画面で、次のパラメーターを設定します。
Value (値): payload
Message (メッセージ): The username cannot be blank
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-not-blank-string value="#[payload]" message="The username cannot be blank"/>
xml
Is not elapsed 操作では、指定された初期時刻から特定の時間が経過していないことを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is not elapsed] を選択します。
[Is not elapsed] を Studio キャンバスにドラッグします。
[Is not elapsed] 設定画面で、次のパラメーターを設定します。
Time: 20
Time unit (時間単位): SECONDS
Since: vars.time
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-not-elapsed time="20" timeUnit="SECONDS" since="#[vars.time]"/>
xml
Is not empty collection パラメーターでは、値が空のコレクションでないことを検証します。この値のデフォルトはペイロードです。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is not empty collection] を選択します。
[Is not empty collection] を Studio キャンバスにドラッグします。
[Is not empty collection] 設定画面で、[Value (値)] 項目を payload
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-not-empty-collection values="#[payload]"/>
xml
Is not null 操作では、指定された値が null
でないことを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is not null] を選択します。
[Is not null] を Studio キャンバスにドラッグします。
[Is not null] 設定画面で、次のパラメーターを設定します。
Value (値): payload
Message (メッセージ): Null is not a valid value
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-not-null value="#[payload]" message="Null is not a valid value"/>
xml
Is null 操作では、指定された値が null
であることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is null] を選択します。
[Is null] を Studio キャンバスにドラッグします。
[Is null] 設定画面で、[Value (値)] 項目を payload
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-null value="#[payload]"/>
xml
Is number 操作では、指定されたロケール (デフォルトはシステムロケール) とパターン (デフォルトはロケールパターン) を使用して、文字列を特定の数値型として解析できることを検証します。この検証には、Min value (最小値) パラメーターと Max Value (最大値) パラメーターを使用して数値を検証する範囲を含めることができます。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is number] を選択します。
[Is number] を Studio キャンバスにドラッグします。
[Is number] 設定画面で、次のパラメーターを設定します。
Value (値): payload
Locale: US
Min value (最小値): vars.minValue
Max value (最大値): vars.maxValue
Number type (数値型): INTEGER
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-number value="#[payload]"
minValue="#[vars.minValue]"
maxValue="#[vars.maxValue]"
numberType="INTEGER" locale="US"/>
xml
Is time 操作では、時刻が指定されたパターンとロケールに対して有効であることを検証します。パターンが指定されていない場合は、ロケールのデフォルトが使用されます。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is time] を選択します。
[Is time] を Studio キャンバスにドラッグします。
[Is time] 設定画面で、次のパラメーターを設定します。
Time: payload
Locale: h:mm a
Pattern: UK
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-time time="#[payload]" pattern="h:mm a" locale="UK"/>
xml
Is true 操作では、式が true
に評価されることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is true] を選択します。
[Is true] を Studio キャンバスにドラッグします。
[Is true] 設定画面で、[Expression (式)] 項目に Expression
を選択し、空の項目に #[vars.doReply]
を追加します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:is-true expression="#[vars.doReply]"/>
xml
Is allowed ip 操作では、特定の IP が許可リストに登録されていることを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Is allowed ip] を選択します。
[Is allowed ip] を Studio キャンバスにドラッグします。
[Is allowed ip] 設定画面で、次のパラメーターを設定します。
Ip address (IP アドレス): #[payload]
Allow List (許可リスト): Edit inline
Ips: Edit inline
プラス記号 (+) をクリックして IP 値ウィンドウを開きます。
[Value (値)] を Valid IP
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<flow name="flow_allowlist_ipv6">
<validation:is-allowed-ip allowList="list_ipv6" ipAddress="#[vars.ip]"/>
<set-payload value="Valid IP"/>
</flow>
xml
Matches regex 操作では、特定の式が Java の正規表現と一致することを検証します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Matches regex] を選択します。
[Matches regex] を Studio キャンバスにドラッグします。
[Matches regex] 設定画面で、[Expression (式)] 項目に Expression
を選択し、空の項目に #[vars.doReply]
を追加します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:matches-regex value="#[payload]" regex=".+\.log" caseSensitive="false"/>
xml
Validate size 操作では、入力サイズが指定された最小値と最大値の間であることを検証します。 文字列、コレクション、マップ、および配列の入力に対して有効です。文字列の場合、サイズは文字数を意味します。
次の例は、Anypoint Studio で操作を設定する方法を示しています。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [Validate size] を選択します。
[Validate size] を Studio キャンバスにドラッグします。
[Validate size] 設定画面で、次のパラメーターを設定します。
Value (値): payload
Min: vars.minLength
Max: vars.maxLength
設定 XML エディターでは、設定は次のように記述されます。
<validation:validate-size value="#[payload]" min="#[vars.minLength]" max="#[vars.maxLength]"/>
xml
[All (すべて)] スコープでは、ネストされた検証操作のリストを評価し、すべてのエラーを要約した VALIDATION:MULTIPLE
エラーを 1 つだけ返すことができます。
複数の条件を評価する必要がある場合に、同時にいくつかの検証に失敗することもあります。こうした場合、すべての説明が含まれる 1 つのエラーを生成します。[All (すべて)] スコープバリデーターには、次のような性質があります。
すべてに失敗してもすべての検証が実行されます。
一部の検証に失敗すると、1 つのエラーがスローされます。例外には複数行のメッセージが含まれ、各行は失敗した検証に対応します。
バリデーターはフローのスレッドを使用して順次実行されますが、バリデーターでは副作用が発生しないため、順序は重要ではありません。
他の検証操作とは異なり、[All (すべて)] スコープバリデーターでは validation:exception
または例外のファクトリー要素を使用して例外種別やメッセージをカスタマイズできません。ただし、検証内操作のメッセージはカスタマイズできます。
All および Any スコープは、ネストされた検証操作を評価するときに、ネストされた操作が VALIDATION 種別の操作でないと VALIDATION:MULTIPLE エラーを返します。All または Any スコープ内でネストされた操作を使用する場合、VALIDATION:MULTIPLE エラーが返されないように、スコープの [Error Mapping (エラーのマッピング)] 設定でエラーのマップ先を変更できます。
|
次の例は、Anypoint Studio で次の内容を同時に検証する [All (すべて)] スコープバリデーターを設定する方法を示しています。
名と姓が空の文字列でない。
年齢が 18 より大きい有効な整数である。
メールアドレスが有効である。
社会保障番号の長さが適切で、正規表現と一致する。
Studio で [All (すべて)] スコープを設定する手順は、次のとおりです。
[Mule Palette (Mule パレット)] ビューで、[Validation (検証)] > [All (すべて)] を選択します。
[All (すべて)] を Studio キャンバスにドラッグします。
[Is not empty collection] 操作をフローの [All (すべて)] スコープにドラッグします。
[Is not empty collection] 設定画面で、[Value (値)] 項目を #[payload.firstName]
に、Message
項目を First name cannot be empty
に設定します。
別の [Is not empty collection] 操作を最初の [Is not empty collection] 操作の右にドラッグします。
[Is not empty collection] 設定画面で、[Value (値)] 項目を #[payload.lastName]
に、Message
項目を Last name cannot be empty
に設定します。
[Is number] 操作を 2 番目の [Is not empty collection] 操作の右にドラッグします。
[Is number] 設定画面で、次のパラメーターを設定します。
Value (値): payload.age
Min value (最小値): 18
Number type (数値型): INTEGER
[Message (メッセージ)] 項目を Not an adult
に設定します。
[Is email] 操作を [Is number] 操作の右にドラッグします。
[Is email] 設定画面で、[Email (メール)] 項目を payload.email
に設定します。
[Matches regex] 操作を [Is email] 操作の右にドラッグします。
[Matches regex] 設定画面で、次のパラメーターを設定します。
Value (値)
payload.ssn
Regex (正規表現)
^(?!000|666)[0-8][0-9]{2}-(?!00)[0-9]{2}-(?!0000)[0-9]{4}$
[Message (メッセージ)] 項目を Invalid SSN
に設定します。
[Validate size] 操作を [Matches regex] 操作の右にドラッグします。
[Validate size] 設定画面で、次のパラメーターを設定します。
Value (値): payload.ssn
Min: 11
Max: 11
[Message (メッセージ)] 項目を SSN too short
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<validation:all >
<validation:is-not-empty-collection values="#[payload.firstName]" message="First name cannot be empty"/>
<validation:is-not-empty-collection values="#[payload.lastName]" message="Last name cannot be empty"/>
<validation:is-number numberType="INTEGER" value="#[payload.age]" minValue="18" message="Not an adult"/>
<validation:is-email email="#[payload.email]"/>
<validation:matches-regex value="#[payload.ssn]" regex="^(?!000|666)[0-8][0-9]{2}-(?!00)[0-9]{2}-(?!0000)[0-9]{4}$" message="Invalid SSN"/>
<validation:validate-size value="#[payload.ssn]" min="11" max="11" message="SSN too short"/>
</validation:all>
xml