DataTable

mablのDataTable APIでは、DataTableとDataTableの個別のシナリオをプログラムで管理できます。mablのDataTable APIで使用できるエンドポイントは、次のとおりです。

  • DataTableのエンドポイント

  • 変数のエンドポイント

  • シナリオのエンドポイント

DataTable APIのユースケースには、以下のようなものがあります。

  • 大規模なDataTableを一括更新する

  • DataTableへの変更を自動化するスクリプトを記述する

  • DataTableページに移動することなくDataTableを更新する

最初の作業

認証

リクエストを認証するには、mabl APIの概要ガイドに記載されている認証手順に従います。

mablリソースID

DataTable APIは、次のmablリソースIDをパラメーター値として使用します。

  • ワークスペースID

  • DataTable ID

  • シナリオID

特定のワークスペースIDまたはDataTable IDを取得するには、mablリソースIDに関するガイドを参照してください。

特定のシナリオIDを取得するには、DataTable APIまたは mabl CLI を使用します。

  • DataTable API: シナリオの取得 (Get Scenarios) エンドポイントを使用

  • mabl CLI: mabl datatables describeコマンドを使用

DataTableのエンドポイント

DataTableのエンドポイントを使用すると、DataTableの作成、クエリ、取得、更新、削除をプログラムで実行できます。

特定のワークスペースのDataTableを取得します。

  • GET /dataTables?workspace_id={workspace_id}

デフォルトでは、このエンドポイントはワークスペースのすべてのDataTableを取得しますが、limitパラメーターを指定して、1つの応答で返すDataTableの最大数を設定することもできます。その後の呼び出しでcursorパラメーターを渡すことで、結果のページを追加取得できます。

新しいDataTableを作成します。

  • POST /dataTables

リクエストボディで、ワークスペースID、DataTable名、シナリオ、変数、値を含むJSONオブジェクトを指定します。たとえば、次のリクエストボディでは、変数 "name"、"email"、"phone" を含む "New Users" というDataTableが作成されます。

{  
   "workspace_id": <ワークスペースIDを引用符で囲んで入力>,  
  "data_table": {  
    "name": "New Users"  
  },  
  "scenarios": [  
    {  
      "name": "Mike",  
      "variables": [  
        {  
          "name": "name",  
          "value": "Mike Richardson"  
        },  
        {  
          "name": "email",  
          "value": "[email protected]"  
        },  
        {  
          "name": "phone",  
          "value": "009555114343"  
        }  
      ]  
    },  
    {  
      "name": "Steve",  
      "variables": [  
        {  
          "name": "name",  
          "value": "Steven King"  
        },  
        {  
          "name": "email",  
          "value": "[email protected]"  
        },  
        {  
          "name": "phone",  
          "value": "004555554235432"  
        }  
      ]  
    }  
  ]  
}

📘

シナリオの最大数

1つのDataTableに対するシナリオの最大数は500です。

特定のDataTableに関するメタデータを取得します。

  • GET /dataTables/{datatable_id}

DataTable名を更新します。

  • PUT /dataTables/{datatable_id}

リクエストボディで、更新後のDataTable名を含むJSONオブジェクトを指定します。たとえば、次のリクエストボディでは、DataTable名が"Existing users" に更新されます。

{  
  "name": "Existing users",  
}

📘

プランがトリガーされると、DataTableに関連付けられたテストの最新バージョンのDataTableが取得されます。プラン実行でDataTableの更新を行う場合、そのプランが終了するまでの間は、そのプラン内の後続のテストで更新後のデータが利用されることはありません。

変数のエンドポイント

変数のエンドポイントでは、DataTableの変数名の作成、クエリ、更新、削除をプログラムで実行できます。

DataTableの現在の変数名を取得します。

  • GET /dataTables/{datatable_id}/variableNames

新しい変数を作成してDataTableに追加します。既存のシナリオのデフォルト値を指定します。

  • POST /dataTables/{datatable_id}/variableNames

リクエストボディで、既存のシナリオのデフォルト値を指定します。たとえば、locationというDataTableの新しい変数とNew Yorkという値を追加する場合は、リクエストボディを次のように記述します。

{  
  "name": "location",  
  "default_value": "New York"  
}

DataTableの変数名を更新します。

  • PATCH /dataTables/{datatable_id}/variableNames

リクエストボディで、更新対象の変数名の値を "name"、新しい変数名の値を"new_name"として、JSONオブジェクトを指定します。たとえば、次のリクエストボディでは、変数名locationcityに更新されます。

{  
  "name": "location",  
  "new_name": "city"  
}

変数名および関連付けられた値をDataTableから削除します。

  • POST /dataTables/{datatable_id}/variableNames/removeVariableName

リクエストボディで、削除する変数を含むJSONオブジェクトを指定します。たとえば、次のリクエストボディでは、変数'city'がDataTableから削除されます。

{  
  "name": "city",  
}

シナリオのエンドポイント

シナリオのエンドポイントでは、DataTableの個別のシナリオの作成、クエリ、取得、更新、削除をプログラムで実行できます。

DataTableに関連付けられたシナリオ、変数値、シナリオIDを取得します。

  • GET /dataTables/scenarios?datatable_id={data_table_id}

新しいシナリオを作成してDataTableに追加します。

  • POST /dataTables/{datatable_id}/scenarios

リクエストボディで、新しいシナリオ名と各変数の値を含むJSONオブジェクトを指定します。たとえば、次のリクエストボディでは、シナリオJaneを"New users" DataTableに追加し、3つの変数(full_nameemailphone) の値を指定しています。

{"name": "Jane",  
  "variables": [  
    {  
      "name": "name",  
      "value": "Jane Doe"  
    },  
    {  
      "name": "email",  
      "value": "[email protected]"  
    },  
    {  
      "name": "phone",  
      "value": "(999) 555-1111"  
    },  
  ]  
}

特定のシナリオに関連付けられた変数値を取得します。

  • GET /dataTables/scenarios/{scenario_id}

特定のシナリオの変数値を更新します。

  • PUT /dataTables/scenarios/{scenario_id}

リクエストボディで、シナリオ名と各変数の更新後の値を含むJSONオブジェクトを指定します。次のリクエストボディでは、"New users" DataTableでJaneシナリオのメールアドレスが更新されます。

{"name": "Jane",  
  "variables": [  
    {  
      "name": "name",  
      "value": "Jane Doe"  
    },  
    {  
      "name": "email",  
      "value": "[email protected]"  
    },  
    {  
      "name": "phone",  
      "value": "(999) 555-1111"  
    },  
  ]  
}

シナリオIDを使って特定のシナリオを削除します。

  • DELETE /dataTables/scenarios/{scenario_id}