REST バリデーター拡張機能の設定

REST バリデーター拡張機能では、RAML または OAS 仕様を使用するスキーマ検証を要求の属性に対して実行できます。また、この拡張機能では、デフォルト値が属性に追加されます (要求でまだ設定されていない場合)。

特に記載がない限り、このドキュメントは REST バリデーター拡張機能 v2.x にのみ適用されます。Mule Runtime Engine (Mule) アプリケーション XML などの Mule アーティファクトで REST バリデーター拡張機能を使用するには、以下の作業を行う必要があります。

pom.xml ファイルに連動関係を含める

pom.xml​ ファイルの ​<dependencies>​ セクションに次のスニペットを追加して、REST バリデーターを Mule アーティファクト (Mule アプリケーション XML など) に含めることができます。

<dependency>
		     <groupId>com.mulesoft.anypoint</groupId>
		     <artifactId>mule-rest-validator-extension</artifactId>
		     <version>${restValidatorVersion}</version>
		     <classifier>mule-plugin</classifier>
</dependency>

ベストプラクティスとして、使用する REST バリデーターのバージョンで ​<properties>​ セクション内に Maven プロパティを定義することをお勧めします。

<properties>
<restValidatorVersion>2.1.3</restValidatorVersion>
</properties>

名前空間とスキーマを Mule アーティファクトに追加する

Mule アーティファクトで REST バリデーター操作を使用するには、次の名前空間とスキーマを含めます。

xmlns:rest-validator="http://www.mulesoft.org/schema/mule/rest-validator"
xsi:schemaLocation="http://www.mulesoft.org/schema/mule/rest-validator http://www.mulesoft.org/schema/mule/rest-validator/current/mule-rest-validator.xsd"

REST バリデーター拡張機能を設定する

REST バリデーター拡張機能を設定するには、Mule アーティファクトに次の構文を追加します。

<rest-validator:config name="validatorConfig" api="${specFile}"/>

このスニペットには、設定に必要な属性が含まれます。​追加属性​を指定して、拡張機能をカスタマイズできます。次の例は、戦略を非逐次化する属性を使用する方法を示しています。

    <rest-validator:config name="configValidator" api="${specFile}" keepApiBaseUri="true">
        <rest-validator:attributes-deserializing-strategies arrayHeaderDelimiter="COMMA"/>
    </rest-validator:config>

REST バリデーター操作を使用する

REST バリデーターを設定したら、バリデーター操作の使用を開始できます。

操作名

validate-request

説明

設定で指定された RAML または OAS 仕様に対して要求を検証します。

使用例

<rest-validator:validate-request config-ref="validatorConfig"/>

属性の説明

次の表に、属性と説明を示します。

属性 説明 必須かどうか

attributes

検証する属性を抽出する DataWeave 式。デフォルト値: #[attributes]

いいえ

payload

検証するペイロードを抽出する DataWeave 式。デフォルト値: #[payload]

いいえ

config-ref

REST バリデーターの設定。

はい

Output (出力)

定義されたスキーマに要求が違反していない場合、検証は正常に終了し、操作の結果で HTTP 要求属性は変更されません。違反している場合、デフォルト値がスキーマ検証に追加され、元の HTTP 要求属性と新しい HTTP 要求属性が出力に含まれます。

エラー種別

「validate-request」操作では、ファイルの取得時に問題が発生した場合や、検証が正常に終了しなかった場合に各種エラーが発生する可能性があります。

  • REST-VALIDATOR:BAD_REQUEST

    一部の属性がスキーマと一致しない場合、エラーが発生します。以下のような属性が検証中に考慮されます。

    • フォームパラメーター

    • ヘッダー

    • クエリパラメーター

    • URI パラメーター

  • REST-VALIDATOR:METHOD_NOT_ALLOWED

    スキーマで必須リソースの特定のメソッドがサポートされていない場合、エラーが発生します。

  • REST-VALIDATOR:RESOURCE_NOT_FOUND

    ルートスキーマまたは一部の関連ファイルを取得できない場合、エラーが発生します。

REST バリデーター拡張機能設定リファレンス

次の表で、バリデーター拡張機能で設定する属性について説明します。

属性 説明 必須かどうか

name

設定の一意の識別子。

はい

api

2.0.0 以降のバージョンの REST バリデーターを使用している場合、​raml​ 属性を使用する必要があります。これには、要求の検証の対象となる仕様ファイルの場所が含まれます。

はい

parser

要求の検証に使用されるパーサー。

  • AUTO (デフォルト)

    APIKit は、AMF を使用して検証を開始しようとします。エラーが発生した場合、RAML パーサーが検証を実行します。

  • AMF

    APIKit ルーターは AMF を使用して API を読み取り、受信要求を検証します。

  • RAML

    APIKit ルーターは RAML パーサーを使用して API を読み取り、受信要求を検証します。

いいえ

keepApiBaseUri

デプロイ済みアプリケーションの URI を使用して、仕様の ​baseUri​ プロパティを上書きできるかどうかを指定します。 コンソール操作を使用する必要がある場合、このプロパティを ​true​ に設定します。デフォルト値は ​false​ です。

2.0.0 以降のバージョンの REST バリデーターを使用している場合、​keepRamlBaseUri​ 属性を使用する必要があります。

いいえ

queryParamsStrictValidation

要求のすべてのクエリパラメーターが仕様ファイルで定義されているかどうかを検証します。一部のパラメーターが指定されていない場合、検証は失敗します。デフォルト値は ​false​ です。

いいえ

headersStrictValidation

仕様で定義されているすべての必須ヘッダーが要求で定義されているかどうかを検証します。一部のパラメーターが指定されていない場合、検証は失敗します。デフォルト値は ​false​ です。

いいえ

attributesDeserializingStrategies`

カンマで区切られた値の配列が含まれる HTTP ヘッダーの解析を許可します。

いいえ

REST バリデーターと APIKit の互換性リファレンス

REST バリデーター (​pom.xml​ 連動関係) は、ドメインを使用してアプリケーション間で共有できます。ただし、それらのアプリケーションの一部に APIKit の連動関係もある場合、各アプリケーションのそのバージョンの APIKit と、ドメインで使用する REST バリデーターのバージョンで必要な APIKit が一致している必要があります。

次の互換性の表に従うと、たとえば、ドメインで REST バリデーター v2.2.0 を使用している場合、APIKit を使用しているすべてのアプリケーションで 1.4.2 バージョンをインポートする必要があります。

REST バリデーターバージョン ApiKit REST Module バージョン

2.2.4

1.9.0

2.2.3

1.8.3

2.2.2

1.7.0

2.2.1

1.5.3

2.2.0

1.4.2

2.1.3

1.3.17

2.1.2

1.3.11

2.1.1

1.3.5

2.1.0

1.3.5

2.0.0

1.2.0

1.2.0

1.1.16

1.1.1

1.1.1