シミュレーションする API コールへの動作ヘッダーの追加

動作ヘッダーにより、モッキングサービスの動作を変更できます。API 仕様への要求をシミュレーションする場合、通常は別の種別のヘッダーを指定する場所で動作ヘッダーを使用します。

MS2-Delay

MS2-Delay では、要求が応答に要する時間 (ミリ秒) を指定します。このヘッダーを使用して、サーバーの負荷やネットワークのレイテンシーをシミュレートできます。

このヘッダーの値は、整数または整数の範囲として指定できます。範囲を指定する場合、値の形式を ​min-max​ にする必要があります。たとえば、​500-1000​ の値を指定した場合、要求には 500 ~ 1000 ミリ秒のランダムな時間がかかります。

ネットワークのレイテンシーによっては、単一の整数値または範囲の上限値よりもレイテンシーが長くなる可能性があります。

MS2-Delay は 10000 ミリ秒 (ms) の最大値を取り、次の動作に従います。

  • 値が 10000 ms 未満に設定されている場合、モッキングサービスは最大 5000 ms の遅延を追加する。

  • 値が 10000 ms より大きい値に設定されている場合、モッキングサービスは最大 10000 ms の遅延を追加する。

例: * 値が 5000 ~ 9000 ms の範囲に設定されている場合、モッキングサービスは最大 5000 ~ 9000 ms の遅延を追加します。 * 値が 9000 ~ 20000 ms に設定されている場合、モッキングサービスは最大 9000 ~ 10000 ms の遅延を追加します。 * 値が 20000 ~ 30000 ms の範囲に設定されている場合、モッキングサービスは次のエラーメッセージを返します。

{
  "code": "INVALID_HEADER_VALUE",
  "message": "Invalid value for header MS2-Delay. Requested range is higher than the max value allowed: 10000 ms"
}

MS2-Example

MS2-Example ヘッダーにより、エンドポイントで 1 つの状況コードに対して複数の例を定義している場合に特定の応答例を選択できます。

MS2-Example を使用して、応答内で複数の例を指定できます。次の例では、状況コード 200 に対する 3 つの例を示しています。

/examples:
  get:
    responses:
      200:
        body:
          application/json:
            examples:
              one:
                prop1: something
                prop2: 30
              two:
                prop1: another
                prop2: 31
              three:
                prop1: anything
                prop2: 33

ここで、ヘッダーに使用可能な値は ​one​、​two​、および ​three​ です。要求の一環として値 ​one​ を送信すると、ペイロード ​something​ および ​30​ が返されます。​one​、​two​、​three​ 以外の値を送信するとエラーメッセージが返されます。

MS2-Error-Level

MS2-Error-Level は、モッキングサービスで使用するエラー状況コードをどの範囲に制限するかを示します。次の 3 つの値 (大文字と小文字を区別) のいずれかを指定できます。

  • REQUEST_ONLY​: モッキングサービスは 4XX コードのみを使用します。

  • SERVER_ONLY​: モッキングサービスは 5XX コードのみを使用します。

  • ALL​: モッキングサービスは 4XX コードと 5XX コードの両方を使用できます。これがデフォルト値です。

MS2-Error-Rate

MS2-Error-Rate は、応答としてエラー状況コードを取得する確率を示します。このヘッダーの値は 0 ~ 1 の小数値である必要があります。

このヘッダーは MS2-Status-Code、MS2-Error-Level、またはこの両方と共に同時に動作します。

Table 1. MS2-Error-Rate を使用する場合にモッキングサービスがどの状況コードで応答するかを決定する方法
MS2-Error-Rate と共に使用される他のヘッダー モッキングサービス (MS) がエラーコードで応答する モッキングサービス (MS) がエラーコードで応答しない

MS2-Status-Code

MS は MS2-Status-Code で指定されたエラーコードを使用します。

MS は MS2-Status-Code で指定された、エラー以外の状況コードを使用します。

MS2-Error-Level

MS は、メソッドで定義されたエラー状況コードのうち、MS2-Error-Level で指定された範囲内の最初のエラー状況コードを使用します。

MS は、メソッドで定義された、エラー以外の最初の状況コードを使用します。

MS2-Error-Level and MS2-Status-Code

MS は、メソッドで定義されたエラー状況コードのうち、MS2-Error-Level で指定された範囲内の最初のエラー状況コードを使用します。

MS は MS2-Status-Code で指定された、エラー以外の最初の状況コードを使用します。

なし

MS は、メソッドで定義された最初のエラー状況コードを使用します。

MS は、メソッドで定義された、エラー以外の最初の状況コードを使用します。

MS2-Randomize

MS2-Randomize を ​true​ に設定すると、モッキングサービスはペイロード応答の例が定義されていない場合にペイロード応答を自動生成します。

たとえば、API 仕様に次の型の定義が含まれているとします。

types:
  Person:
    properties:
      id: integer
      name: string

例を提供せずに、​true​ に設定されたヘッダー MS2-Randomize をモッキングサービスで使用した場合、返されるメッセージのペイロードには、このデータ型に一致するランダムな値を含む次のような例が含まれます。

{
  "id": 98358,
  "name": "OVCKr"
}

また、ヘッダーではさらに詳細な型定義がサポートされます。たとえば、型定義を次のように変更できます。

types:
  Person:
    properties:
      id:
        type: integer
        minimum: 3
        maximum: 30
        multipleOf: 3
      name: string

MS2-Randomize を ​true​ に設定した場合、モッキングサービスからの応答のペイロードは次のようになり、​id​ の値は制限に準拠します。

{
  "id": 9,
  "name": "rul68"
}

MS2-Status-Code

MS2-Status-Code では、返すメッセージに対してモッキングサービスが選択できる状況コードを指定します。このヘッダーは、メソッドで定義された状況コードのリストの検索条件として動作します。たとえば、エラー以外の複数の状況コードがメソッドで定義されているとします。モッキングサービスでこの状況コードの 1 つのみを使用して応答する場合、その状況コードをこのヘッダーで指定します。

このヘッダーを MS2-Error-Rate と共に使用する場合、エラー以外の状況コードとエラー状況コードの両方を指定する必要があります。この 2 つの状況コードをカンマで区切ります。たとえば、モッキングサービスでエラーがない場合に 201 メッセージを返し、エラーがある場合に 401 状況コードを返すとします。この場合、値に ​201,401​ を指定します。

MS2-Status-Code-Selection

デフォルトでは、モッキングサービスは要求に応答するときに、対応するメソッドで定義されている最も小さい状況コードを選択します。たとえば、状況コード 201、400、409、500 の応答を定義するエンドポイントに対して POST 要求を実行する場合、デフォルトでは、モッキングサービスは状況コード 201 で定義されている応答メッセージを送信します。MS2-Status-Code-Selection ヘッダーを使用すると、このデフォルトの動作またはモッキングサービスを変更できます。

MS2-Status-Code-Selection と MS2-Error-Level は併用できます。モッキングサービスは、MS2-Error-Level で指定されたエラー状況コードの範囲内にある状況コードを数値の昇順で並び替え、MS2-Status-Code-Selection で指定された戦略に応じてその範囲からエラー状況コードを返します。

MS2-Status-Code-Selection の使用可能な値は次のとおりです。

FIRST

モッキングサービスは、状況コードのリストを数値の昇順で並び替え、最も小さい状況コードを返します。たとえば、仕様で POST メソッドの状況コードが 500、409、400、200 の順に定義されている場合、モッキングサービスは状況コード 200 の応答を返します。

RANDOM

モッキングサービスは、いずれかの状況コードをランダムに選択して返します。たとえば、仕様で POST メソッドの状況コード 500、409、400、200 が定義されている場合、モッキングサービスはいずれかの応答を返します。

MS2-Strict-Model-Validation

このヘッダーは、2019 年 1 月 10 日に API Designer がより厳格なパーサーに切り替えられる前に記述された仕様を含む API へのコールをシミュレーションする場合に役立つ可能性があります。

このヘッダーを ​false​ に設定した場合、API 仕様にエラーが含まれていてもモッキングサービスを使用できます。

このヘッダーを ​true​ に設定した場合、モッキングサービスは応答する前に仕様を検証します。仕様にエラーがある場合、モッキングサービスはそのエラーで失敗します。それ以外の場合、モッキングサービスは通常どおりに機能します。