다음을 통해 공유


add 명령

기존 데이터 API 작성기 구성 파일에 새 엔터티 정의를 추가합니다. 을 사용하여 만든 dab init구성이 이미 있어야 합니다. 만든 후 엔터티를 수정하는 데 사용합니다 dab update .

팁 (조언)

새 엔터티 dab add 를 만들고 발전하는 데 사용합니다dab update.

Syntax

dab add <entity-name> [options]

한눈에 보기

Option 요약
-c, --config 구성 파일 경로입니다. 기본값 dab-config.json.

헤드 섹션

Option 요약
<entity-name> 필수 위치 인수입니다. 논리적 엔터티 이름입니다.
-s, --source 필수 사항입니다. 데이터베이스 개체 이름(테이블, 뷰 또는 저장 프로시저).
--source.type 원본 형식: table, viewstored-procedure (기본 테이블)
--source.key-fields 뷰에 대한 기본 키 필드(쉼표로 구분).
--source.params 저장 프로시저만. 기본 매개 변수 값은 .입니다 param1:val1,param2:val2.

캐시 섹션

Option 요약
--cache.enabled 엔터티에 대한 캐싱을 사용/사용하지 않도록 설정합니다.
--cache.ttl Time-to-Live(초)를 캐시합니다.
--description 엔터티에 대한 자유 형식 설명입니다.

매개 변수 섹션

Option 요약
--parameters.name 저장 프로시저만. 매개 변수 이름(쉼표로 구분).
--parameters.description 저장 프로시저만. 매개 변수 설명입니다.
--parameters.required 저장 프로시저만. 매개 변수 필수 플래그입니다.
--parameters.default 저장 프로시저만. 매개 변수 기본값입니다.

필드 섹션

Option 요약
--fields.exclude 쉼표로 구분된 제외 필드입니다.
--fields.include 쉼표로 구분된 허용 필드(* = 모두)입니다.
--fields.name 설명할 필드 이름(반복 가능 또는 쉼표로 구분)입니다.
--fields.alias 필드 별칭(쉼표로 구분되고 정렬됨 --fields.name)입니다.
--fields.description 필드 설명(쉼표로 구분되고 정렬됨 --fields.name)입니다.
--fields.primary-key 기본 키 플래그(쉼표로 구분되고 정렬됨 --fields.name)입니다.

API 섹션

Option 요약
--graphql GraphQL 노출: false, true, singular또는 singular:plural.
--graphql.operation 저장 프로시저만. Query 또는 Mutation (기본 변형)
--rest REST 노출: false또는 true사용자 지정 경로입니다.
--rest.methods 저장 프로시저만. 허용되는 동사: GET, POST, PUTPATCH, DELETE. 기본 POST입니다.
--mcp.dml-tools MCP(모델 컨텍스트 프로토콜)의 엔터티에 대한 DML(데이터 조작 언어) 도구를 사용하거나 사용하지 않도록 설정합니다. 기본값 true.
--mcp.custom-tool 저장 프로시저만. 명명된 MCP 도구로 등록합니다.

사용 권한 섹션

Option 요약
--permissions 필수 사항입니다. role:actions 단일 역할의 경우
--policy-database 데이터베이스 쿼리에 적용된 OData 스타일 필터입니다.
--policy-request 데이터베이스 호출 전에 평가된 요청 정책입니다.

<entity-name>

구성에 있는 엔터티의 논리적 이름입니다. 대/소문자를 구분합니다.

테이블, 뷰 및 저장 프로시저에 대한 빠른 예제

테이블 추가

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 \
  --parameters.name "year,active" \
  --parameters.required "false,false" \
  --parameters.default "2024,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"

-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.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" } ] }
      ]
    }
  }
}

--source.key-fields

기본 키로 사용할 하나 이상의 필드입니다. 뷰에는 기본 키가 부족하므로 키 필드를 명시적으로 지정해야 합니다.

Example

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

결과 구성

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

--source.params

저장 프로시저에 대한 매개 변수 및 해당 기본값의 사전입니다. param1:val1,param2:val2 형식을 사용합니다.

Example

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

결과 구성

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

--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": {}
    }
  }
}

--cache.ttl

Time-to-Live(초)를 캐시합니다.

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": {
        "ttl-seconds": 300
      }
    }
  }
}

--description

엔터티에 대한 자유 텍스트 설명입니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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"
    }
  }
}

--parameters.name

저장 프로시저만. 매개 변수 이름의 쉼표로 구분된 목록입니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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,
            "default": "",
            "description": "Beginning of date range (inclusive)"
          },
          {
            "name": "EndDate",
            "required": true,
            "default": "",
            "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.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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

저장 프로시저만. 정렬된 값의 true/false 쉼표로 구분된 --parameters.name목록입니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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목록입니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--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": {
                "exclude": [],
                "include": [ "id", "title", "price" ]
              }
            }
          ]
        }
      ]
    }
  }
}

--fields.name

설명할 데이터베이스 열의 이름입니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --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"

결과 구성

비고

현재 2.0.0-rc 릴리스에서 CLI는 엔터티 수준 필드 메타데이터를 허용--fields.name--fields.alias--fields.description하지만 --fields.primary-key 아직 구성 파일에 유지하지는 않습니다. 팀은 GA 전에 이 동작을 해결해야 합니다.

--fields.alias

필드의 별칭입니다. 에 맞춰 쉼표로 구분된 --fields.name목록을 사용합니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--fields.description

필드에 대한 설명입니다. 에 맞춰 쉼표로 구분된 --fields.name목록을 사용합니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

--fields.primary-key

필드의 기본 키 플래그입니다. 쉼표로 구분된 값 true목록을 /false--fields.name 사용합니다.

비고

이 옵션은 CLI에서 2.0.0-rc 사용할 수 있습니다. 데이터 API 작성기 2.0은 현재 미리 보기로 제공됩니다. 를 사용하여 설치합니다 dotnet tool install microsoft.dataapibuilder --version 2.0.0-rc --prerelease.

Example

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

비고

현재 2.0.0-rc 릴리스에서 CLI는 엔터티 수준 필드 메타데이터를 수락 --fields.primary-key 하지만 아직 구성 파일에 유지하지 않습니다. 뷰에 대한 기본 키 필드를 지정하려면 대신 사용합니다 --source.key-fields .

--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",
        "type": {
          "singular": "BookProc",
          "plural": "BookProcs"
        }
      }
    }
  }
}

--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 동사: GET, POST, PUT, PATCHDELETE. 기본값은 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" ]
      }
    }
  }
}

--mcp.dml-tools

MCP에서 이 엔터티에 대해 DML 도구를 사용하거나 사용하지 않도록 설정합니다. 기본값: true. 로 false설정하면 엔터티가 MCP DML 도구 화면에서 제외됩니다. 완전히 생략된 경우 mcp DML 도구는 기본적으로 사용하도록 설정됩니다.

비고

이 섹션에 설명된 Data API Builder 2.0 기능은 현재 미리 보기 상태이며 일반 공급 전에 변경될 수 있습니다. 자세한 내용은 버전 2.0의 새로운 기능입니다.

Example

dab add Book \
  --source dbo.Books \
  --permissions "anonymous:read" \
  --mcp.dml-tools true

결과 구성

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

--mcp.custom-tool

저장 프로시저 엔터티를 명명된 MCP 도구로 등록합니다. 유효한 경우에만 --source.type 유효합니다.stored-procedure DAB true가 MCP tools/list 응답에 프로시저를 동적으로 등록하고 에이전트가 프로시저를 통해 tools/call호출할 수 있습니다.

Example

dab add GetBookById \
  --source dbo.get_book_by_id \
  --source.type stored-procedure \
  --permissions "anonymous:execute" \
  --mcp.custom-tool true

결과 구성

{
  "entities": {
    "GetBookById": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.get_book_by_id"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "execute" } ] }
      ],
      "mcp": {
        "custom-tool": true
      }
    }
  }
}

중요합니다

--mcp.custom-tool 는 저장 프로시저 엔터티에만 유효합니다. 테이블 또는 뷰 엔터티와 함께 사용하면 유효성 검사 오류가 발생합니다.

--permissions

역할→ 작업 쌍을 정의합니다.

--permissions 은 반복할 수 없습니다. 역할을 더 추가하려면 하나의 역할로 실행 dab add 한 다음 더 많은 역할을 실행 dab update 합니다.

Example

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

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

--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'"
              }
            }
          ]
        }
      ]
    }
  }
}

--help

이 도움말 화면을 표시합니다.

Example

dab add \
  --help

--version

버전 정보를 표시합니다.

Example

dab add \
  --version