次の方法で共有


add コマンド

既存のデータ API ビルダー構成ファイルに新しいエンティティ定義を追加します。 dab initで作成された構成が既に必要です。 dab updateを使用して、作成後にエンティティを変更します。

ヒント

dab addを使用して新しいエンティティを作成し、それらを進化dab updateします。

構文

dab add <entity-name> [options]

チラッ

Option 概要
<entity-name> 必要な位置引数。 論理エンティティ名。
-c, --config 構成ファイルのパス。 デフォルト dab-config.json
--cache.enabled エンティティのキャッシュを有効または無効にします。
--cache.ttl キャッシュの有効期間 (秒単位)。
--description エンティティの自由形式の説明。
--fields.exclude コンマ区切りの除外フィールド。
--fields.include コンマ区切りの許可されるフィールド (* = すべて)。
--fields.name 記述するフィールド名 (繰り返し可能またはコンマ区切り)。
--fields.alias フィールドエイリアス (コンマ区切り、 --fields.nameに合わせて配置)。
--fields.description フィールドの説明 (コンマ区切り、 --fields.nameにアライン)。
--fields.primary-key 主キー フラグ (コンマ区切り、 --fields.nameにアライン)。
--graphql GraphQL の公開: falsetruesingular、または singular:plural
--graphql.operation ストアド プロシージャのみ。 Query または Mutation (既定の変更)。
--permissions 必須。 role:actions 1 つのロールの場合は〘。
--policy-database DB クエリに適用される OData スタイルのフィルター。
--policy-request DB 呼び出しの前に評価された要求ポリシー。
--parameters.name ストアド プロシージャのみ。 パラメーター名 (コンマ区切り)。
--parameters.description ストアド プロシージャのみ。 パラメーターの説明。
--parameters.required ストアド プロシージャのみ。 パラメーターに必要なフラグ。
--parameters.default ストアド プロシージャのみ。 パラメーターの既定値。
--rest REST 公開: falsetrue、またはカスタム ルート。
--rest.methods ストアド プロシージャのみ。 使用できる動詞: GETPOSTPUTPATCHDELETE。 既定の POST。
-s, --source 必須。 データベース オブジェクト名 (テーブル、ビュー、またはストアド プロシージャ)。
--source.key-fields 主キーとして使用するフィールド。
--source.params ストアド プロシージャのみ。 既定のパラメーター値。
--source.type ソースの種類: tableviewstored-procedure (既定のテーブル)。
--help このヘルプ画面を表示します。
--version バージョン情報を表示します。

<entity-name>

config 内のエンティティの論理名。大文字と小文字が区別されます。

テーブル、ビュー、ストアド プロシージャの簡単な例

テーブルを追加する

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory"

ビューを追加する

dab add BookView \
  --source dbo.MyView \
  --source.type view \
  --source.key-fields "id,region" \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory from view"

ストアド プロシージャを追加する

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --source.params "year:2024,active:true" \
  --permissions "anonymous:execute" \
  --graphql.operation query \
  --description "Example for executing a stored procedure"

-c, --config

構成ファイルのパス。 既定値は dab-config.json です。

Example

dab add Book \
  --config ./dab-config.mssql.json \
  --source dbo.Books \
  --permissions "anonymous:read"

--cache.enabled

キャッシュを有効または無効にします。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --cache.enabled true

結果の構成

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

キャッシュの有効期間 (秒単位)。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --cache.ttl 300

結果の構成

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "cache": {
        "enabled": false,
        "ttl-seconds": 300
      }
    }
  }
}

--description

エンティティの自由テキストの説明。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --description "Entity for managing book inventory"

結果の構成

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--fields.exclude

除外するフィールドのコンマ区切りのリスト。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.exclude "internal_flag,secret_note"

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "exclude": [ "internal_flag", "secret_note" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.include

公開するフィールドのコンマ区切りのリスト。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --fields.include "id,title,price"

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "fields": {
                "include": [ "id", "title", "price" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--graphql

GraphQL の公開を制御します。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --graphql book:books

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "graphql": {
        "enabled": true,
        "type": {
          "singular": "book",
          "plural": "books"
        }
      }
    }
  }
}

--graphql.operation

ストアド プロシージャのみ。 GraphQL 操作の種類。 既定値は mutation です。

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --graphql.operation Query

結果の構成

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "graphql": {
        "enabled": true,
        "operation": "query"
      }
    }
  }
}

--permissions

ロール→アクションのペアを定義します。

--permissions は繰り返しできません。 ロールをさらに追加するには、1 つのロールで dab add を実行してから、 dab update を実行して追加のロールを実行します。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read"

dab update Book \
  --permissions "authenticated:create,read,update,delete"

--parameters.name

ストアド プロシージャのみ。 パラメーター名のコンマ区切りリスト。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --description "Retrieves all orders placed within a specified date range" \
  --parameters.name "StartDate,EndDate,CustomerID" \
  --parameters.description "Beginning of date range (inclusive),End of date range (inclusive),Optional customer ID filter" \
  --parameters.required "true,true,false" \
  --parameters.default ",,null"

結果の構成

{
  "entities": {
    "GetOrdersByDateRange": {
      "description": "Retrieves all orders placed within a specified date range",
      "source": {
        "object": "dbo.usp_GetOrdersByDateRange",
        "type": "stored-procedure",
        "parameters": [
          {
            "name": "StartDate",
            "required": true,
            "description": "Beginning of date range (inclusive)"
          },
          {
            "name": "EndDate",
            "required": true,
            "description": "End of date range (inclusive)"
          },
          {
            "name": "CustomerID",
            "required": false,
            "default": "null",
            "description": "Optional customer ID filter"
          }
        ]
      },
      "permissions": [
        {
          "role": "authenticated",
          "actions": [
            {
              "action": "execute"
            }
          ]
        }
      ]
    }
  }
}

--parameters.description

ストアド プロシージャのみ。 --parameters.nameにアラインされたパラメーター記述のコンマ区切りのリスト。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "StartDate,EndDate" \
  --parameters.description "Beginning of date range (inclusive),End of date range (inclusive)"

--parameters.required

ストアド プロシージャのみ。 --parameters.nameにアラインされたtrue/false値のコンマ区切りリスト。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "StartDate,EndDate" \
  --parameters.required "true,true"

--parameters.default

ストアド プロシージャのみ。 --parameters.nameにアラインされた既定値のコンマ区切りの一覧。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add GetOrdersByDateRange \
  --source dbo.usp_GetOrdersByDateRange \
  --source.type stored-procedure \
  --permissions "authenticated:execute" \
  --parameters.name "CustomerID" \
  --parameters.default "null"

--fields.name

説明するデータベース列の名前。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID,ProductName" \
  --fields.alias "product_id,product_name" \
  --fields.description "Unique identifier for each product,Display name of the product" \
  --fields.primary-key "true,false"

結果の構成

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "alias": "product_id",
          "description": "Unique identifier for each product",
          "primary-key": true
        },
        {
          "name": "ProductName",
          "alias": "product_name",
          "description": "Display name of the product",
          "primary-key": false
        }
      ]
    }
  }
}

--fields.alias

フィールドのエイリアス。 --fields.nameに合わせてコンマ区切りのリストを使用します。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.alias "product_id"

--fields.description

フィールドの説明。 --fields.nameに合わせてコンマ区切りのリストを使用します。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.description "Unique identifier"

--fields.primary-key

フィールドの主キー フラグ。 --fields.nameにアラインされたtrue/false値のコンマ区切りのリストを使用します。

このオプションは、v1.7 プレリリース CLI (現在 RC) でのみ使用できます。 dotnet tool install microsoft.dataapibuilder --prereleaseを使用してインストールします。

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.primary-key "true"

結果の構成

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "primary-key": true
        }
      ]
    }
  }
}

--policy-database

データベース レベルのポリシー。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-database "region eq 'US'"

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "database": "region eq 'US'"
              }
            }
          ]
        }
      ]
    }
  }
}

--policy-request

要求レベルのポリシー。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --policy-request "@claims.role == 'admin'"

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            {
              "action": "read",
              "policy": {
                "request": "@claims.role == 'admin'"
              }
            }
          ]
        }
      ]
    }
  }
}

--rest

REST の公開を制御します。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --rest BooksApi

結果の構成

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ],
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

ストアド プロシージャのみ。 実行できる HTTP 動詞: GETPOSTPUTPATCHDELETE。 既定値は POST です。 テーブル/ビューでは無視されます。

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --permissions "admin:execute" \
  --rest true \
  --rest.methods GET,POST

結果の構成

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

-s, --source

必須。 データベース オブジェクトの名前: テーブル、ビュー、コンテナー、またはストアド プロシージャ。

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read"

結果の構成

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.key-fields

主キーとして使用するフィールド。 CLI を使用して生成されるビューに必要です。

Example

dab add BookView \
  --source dbo.MyView \
  --source.type view \
  --source.key-fields "id,region" \
  --permissions "anonymous:read"

結果の構成

{
  "entities": {
    "BookView": {
      "source": {
        "type": "view",
        "object": "dbo.MyView",
        "key-fields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.params

ストアド プロシージャのみ。 コンマ区切りの name:value ペア。 テーブルまたはビューには使用できません。

v1.7 プレリリース CLI (現在 RC) では、 --source.params は非推奨です。 代わりに、 --parameters.name--parameters.default、および関連する --parameters.* オプションを使用します。

Example

dab add BookProc \
  --source dbo.MyProc \
  --source.type stored-procedure \
  --source.params "year:2024,active:true" \
  --permissions "admin:execute"

結果の構成

{
  "entities": {
    "BookProc": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.MyProc",
        "parameters": [
          {
            "name": "year",
            "required": false,
            "default": "2024"
          },
          {
            "name": "active",
            "required": false,
            "default": "True"
          }
        ]
      },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ]
    }
  }
}

--help

このヘルプ画面を表示します。

Example

dab add \
  --help

--version

バージョン情報を表示します。

Example

dab add \
  --version

--source.type

データベース オブジェクトの種類。 既定値: table

Example

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read"

結果の構成

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}