Flex Gateway新着情報
Governance新着情報
Monitoring API Managerエラーが発生したことを示す Mule エラーを生成します。
エラーの説明と種別をカスタマイズできます。このコンポーネントは、次のエラーを生成するために使用します。
MULE:SECURITY
、MULE:CONNECTIVITY
などのコアランタイムエラー。
カスタムエラー種別。
別のコネクタや FILE:FILE_NOT_FOUND
や JSON:INVALID_SCHEMA
などのモジュールからエラーを発生させることはできません。コネクタの既存の名前空間を使用することはできません。
このコンポーネントは、次の XML 構造をサポートします。
<raise-error
type="MULE:CONNECTIVITY"
description="Error description message" />
Raise Error (<raise-error/>
) 属性は UI および XML で設定できます。
属性名 | 属性 XML | 説明 |
---|---|---|
Raise error (エラー生成) (デフォルト) |
|
キャンバスに表示されるコンポーネントの編集可能な名前。 |
なし |
|
コンポーネントの自動生成された識別子。 |
Type (種別) |
|
エラーの種別。 |
Description (説明) |
|
エラーの説明。 |
次の例は、API 要求の作成中にユーザーが無効な値を指定したときにカスタムエラーを発生させる方法と、API 応答で受信した値を比較した後にカスタムエラーを発生させる方法を示しています。
次の運転教習プラットフォームの例では、ユーザーが 16 歳以上であることを確認します。ユーザーが 16 歳未満の年齢を入力すると、フローでカスタム PRECONDITIONS:INCORRECT_AGE
エラーが生成されます。
<http:listener-config name="HTTP_Listener_config">
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="raise-error-example-flow">
<http:listener config-ref="HTTP_Listener_config" path="/test"/>
<choice> (1)
<when expression="#[message.attributes.queryParams.age < 16]"> (2)
<raise-error type="PRECONDITIONS:INCORRECT_AGE" description="Minimum age of 16 required to drive" />
</when>
<otherwise > (3)
<logger level="INFO" message="User age above 16 years. Allowed to drive"/>
</otherwise>
</choice>
<error-handler >
<on-error-continue enableNotifications="true" logException="true" type="PRECONDITIONS:INCORRECT_AGE"> (4)
<logger level="INFO" message="Minimum age to drive is 16 years old"/>
</on-error-continue>
<on-error-continue enableNotifications="true" logException="true" type="MULE:EXPRESSION"> (5)
<logger level="INFO" message="The parameter age is missing or invalid"/>
</on-error-continue>
</error-handler>
</flow>
1 | Choice Router コンポーネントにより、条件処理がフローに追加されます。 |
2 | 要求で送信された age パラメーターが 16 (http://localhost:8081/test?age=15 ) 未満の場合、Raise Error コンポーネントでエラー種別 PRECONDITIONS:INCORRECT_AGE と説明 Minimum age of 16 required to drive が生成されます。 |
3 | 要求 (http://localhost:8081/test?age=17 ) の age パラメーターが 16 より大きい場合、Logger コンポーネントでデフォルトのメッセージ「。User age above 16 years. 」が返されます` Allowed to drive` が返されます。 |
4 | On-Error Continue コンポーネントでエラー PRECONDITIONS:INCORRECT_AGE の種別が照合され、そのスコープ内で Logger コンポーネントが実行されます。Logger コンポーネントによってエラーメッセージ Minimum age of 16 required to drive が記録されます。 |
5 | 要求 (http://localhost:8081/test ) で age パラメーターが渡されない場合、式 #[message.attributes.queryParams.age < 16] を評価しようとしたときに Choice コンポーネントで自動的に MULE:EXPRESSION エラーが生成されます。要求で age パラメーターが指定されなかったため、その値は null です。
次に、On-Error Continue コンポーネントでエラー |
次の例では、API (https://unsecurebank.com/balance) に対する要求を行って返された口座残高を balance 変数に保存し、payload.amount
と比較して操作が可能かどうかを判断します。振込金額が利用可能残高を超えると Choice Router で ACCOUNT:INSUFFICIENT_FUNDS
エラーが生成され、振込が行われないようにします。説明では、エラーの詳細が動的に提供されます。
<flow name="raise-error-example-flow">
<http:request url="https://unsecurebank.com/balance" target="balance"/>
<choice>
<when expression="#[payload.amount > vars.balance]">
<raise-error type="ACCOUNT:INSUFFICIENT_FUNDS" description="#['Cannot transfer $(payload.amount) since only $(vars.balance) are available.']"/>
</when>
</choice>
<http:request url="https://unsecurebank.com/transfer"/>
</flow>