데이터 API 작성기 명령줄 인터페이스 참조
데이터 API 작성기 CLI(명령줄 인터페이스)(dab CLI 또는 dab
)는 데이터 API 작성기를 사용하는 애플리케이션에 대한 로컬 개발 환경을 간소화하는 명령줄 도구입니다.
팁
데이터 API 작성기 CLI에는 통합 도움말 시스템이 함께 제공됩니다. 사용할 수 있는 명령 목록을 얻으려면 --help
명령에서 dab
옵션을 사용합니다.
dab --help
특정 명령에 대한 도움말을 보려면 --help
옵션을 사용합니다. 예를 들어 init
명령에 대해 자세히 알아보려면 다음을 수행합니다.
dab init --help
명령줄 동사 및 옵션
init
Data API Builder 런타임 엔진에 대한 런타임 구성을 초기화합니다. 옵션으로 제공되는 속성을 사용하여 새 JSON 파일을 만듭니다.
통사론
dab init [options]
예제
dab init --config "dab-config.mssql.json" --database-type mssql --connection-string "@env('SQL_CONNECTION_STRING')"
dab init --database-type mysql --connection-string "@env('MYSQL_CONNECTION_STRING')" --graphql.multiple-create.enabled true
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
--database-type | ✔️ 예 | ✔️ 예 | 문자열 | 연결할 데이터베이스의 유형입니다. 지원되는 값: mssql , cosmosdb_nosql , cosmosdb_postgresql , mysql , postgresql . |
|
--connection-string |
❌ 아니요 | "" |
✔️ 예 | 문자열 | 데이터베이스에 연결할 연결 세부 정보입니다. |
--cosmosdb_nosql-database |
✔️ 예 을 | ✔️ 예 | 문자열 | NoSql용 Cosmos DB의 데이터베이스 이름입니다. | |
--cosmosdb_nosql-container |
❌ 아니요 | ✔️ 예 | 문자열 | NoSql용 Cosmos DB의 컨테이너 이름입니다. | |
--graphql-schema |
✔️ 예 을 | ✔️ 예 | 문자열 | GraphQL 스키마 경로 | |
--set-session-context |
❌ 아니요 | false |
❌ 아니요 | 세션 컨텍스트를 사용하여 MsSql로 데이터를 보낼 수 있습니다. | |
--host-mode | ❌ 아니요 | production |
✔️ 예 | 문자열 | 호스트 모드 지정 - 개발 또는 프로덕션 |
--cors-origin | ❌ 아니요 | "" |
✔️ 예 | 문자열 | 허용된 원본 목록을 지정합니다. |
--auth.provider |
❌ 아니요 | StaticWebApps |
✔️ 예 | 문자열 | ID 공급자를 지정합니다. |
--rest.path |
❌ 아니요 | /api |
✔️ 예 | 문자열 | REST 엔드포인트의 접두사를 지정합니다. |
--rest.enabled |
❌ 아니요 | true |
✔️ 예 | 부울 | 모든 엔터티에 대해 REST 엔드포인트를 사용하도록 설정합니다. |
--rest.request-body-strict |
❌ 아니요 | true |
✔️ 예 | 요청 본문에서 불필요한 필드를 허용하지 않습니다. | |
--graphql.path |
❌ 아니요 | /graphql |
✔️ 예 | 문자열 | GraphQL 엔드포인트의 접두사를 지정합니다. |
--graphql.enabled |
❌ 아니요 | true |
✔️ 예 | 부울 | 모든 엔터티에 대해 GraphQL 엔드포인트를 사용하도록 설정합니다. |
--graphql.multiple-create.enabled |
❌ 아니요 | false |
✔️ 예 | GraphQL에서 여러 만들기 기능을 사용하도록 설정합니다. | |
--auth.audience |
❌ 아니요 | ✔️ 예 | 문자열 | JWT(Json Web Token)가 의도한 받는 사람을 식별합니다. | |
--auth.issuer |
❌ 아니요 | ✔️ 예 | 문자열 | JWT 토큰을 발급한 당사자를 지정합니다. | |
-c,--config | ❌ 아니요 | dab-config.json |
✔️ 예 | 문자열 | 구성 파일의 경로입니다. |
1 이 옵션은 --database-type
cosmosdb_nosql
설정된 경우에만 필요합니다.
add
구성 파일에 새 데이터베이스 엔터티를 추가합니다. 이 명령을 실행하기 전에 구성 파일이 이미 있는지 확인합니다. 그렇지 않으면 오류가 반환됩니다.
통사론
dab add [entity-name] [options]
예제
dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
-s,--출처 | ✔️ 예 | ✔️ 예 | 문자열 | 원본 테이블 또는 컨테이너의 이름입니다. | |
--permissions |
✔️ 예 | ✔️ 예 | 문자열 | 원본 테이블 또는 컨테이너에 액세스하는 데 필요한 권한입니다. 형식: [role]:[actions] . |
|
--source.type |
❌ 아니요 | table |
✔️ 예 | 문자열 | 데이터베이스 개체의 형식입니다. 지원되는 값: table , view , stored-procedure . |
--source.params |
❌ 아니요 | ✔️ 예, 프롬크에 매개 변수가 있는 경우 | 문자열 | 저장 프로시저 매개 변수 및 해당 데이터 형식의 사전입니다. 지원되는 데이터 형식은 string , number 및 boolean . 매개 변수는 paramName:type 형식으로 지정됩니다. 예: --source.params "id:number,isActive:boolean,name:string" . |
|
--source.key 필드 | ✔️ 예 을 | ✔️ 예 | 문자열 | 테이블 및 뷰에 대해서만 기본 키로 사용할 하나 이상의 필드입니다. 쉼표로 구분된 값입니다. 예제 --source.key-fields "id,name,type" . |
|
--rest |
❌ 아니요 | 대/소문자를 구분하는 엔터티 이름 |
✔️ 예 | 문자열 | REST API에 대한 경로입니다. 예: --rest: false -> 이 엔터티에 대한 REST API 호출을 사용하지 않도록 설정합니다.
--rest: true -> 엔터티 이름이 나머지 경로가 됩니다.
--rest: "customPathName" -> 제공된 customPathName이 REST 경로가 됩니다. |
--rest.methods |
❌ 아니요 | post |
✔️ 예 | 문자열 | 저장 프로시저에 대해 지원되는 HTTP 작업입니다. 작업을 쉼표로 구분된 목록으로 지정합니다. 유효한 HTTP 작업은 다음과 같습니다. [get, post, put, patch, delete]. |
--graphql |
❌ 아니요 | 대/소문자를 구분하는 엔터티 이름 |
✔️ 예 | Bool/String | GraphQL에 노출되는 엔터티 형식입니다. 예: --graphql: false -> 이 엔터티에 대한 graphql 호출을 사용하지 않도록 설정합니다.
--graphql: true -> 기본 이름을 사용하여 GraphQL에 대한 엔터티를 노출합니다. 엔터티 이름의 단수 형식은 쿼리 및 변형 이름에 대해 고려됩니다.
--graphql: "customQueryName" -> DAB가 쿼리 및 변형에 대해 제공된 값을 복수화하는 동안 단수 값을 명시적으로 설정합니다.
--graphql: "singularName:pluralName" -> 쿼리 및 변형에 사용되는 단수 및 복수 값(콜론 : 구분)을 모두 설정합니다. |
--graphql.operation |
❌ 아니요 | mutation |
✔️ 예 | 문자열 | 저장 프로시저에 대해 지원되는 GraphQL 작업입니다. 지원되는 값: query , mutation . |
--fields.include |
❌ 아니요 | ✔️ 예 | 문자열 | 액세스할 수 있는 권한이 있는 필드입니다. | |
--fields.exclude |
❌ 아니요 | ✔️ 예 | 문자열 | 작업 목록에서 제외된 필드입니다. | |
--policy-database | ❌ 아니요 | ✔️ 예 | 문자열 | 데이터베이스로 전송된 쿼리에 삽입되는 OData 스타일 필터 규칙을 지정합니다. | |
-c,--config | ❌ 아니요 | dab-config.json |
✔️ 예 | 문자열 | 구성 파일의 경로입니다. |
1 이 옵션은 --source.type
view
설정된 경우에만 필요합니다.
update
구성 파일에서 데이터베이스 엔터티의 속성을 업데이트합니다.
메모
dab update
dab add
지원하는 모든 옵션을 지원합니다. 또한 나열된 옵션도 지원합니다.
통사론
dab update [entity-name] [options]
예제
dab update Publisher --permissions "authenticated:*"
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
--relationship | ❌ 아니요 | ✔️ 예 | 문자열 | 두 엔터티 간의 관계를 지정합니다. 관계의 이름을 제공합니다. | |
--카디널리티 | ✔️ 예 을 | ✔️ 예 | 문자열 | 두 엔터티 간에 카디널리티를 지정합니다. 하나 이상이 될 수 있습니다. | |
--target.entity |
✔️ 예 을 | ✔️ 예 | 문자열 | 원본 엔터티와 관련된 또 다른 노출된 엔터티입니다. | |
--linking.object |
❌ 아니요 | ✔️ 예 | 문자열 | M:N 관계를 지원하는 데 사용되는 데이터베이스 개체입니다. | |
--linking.source.fields |
❌ 아니요 | ✔️ 예 | 문자열 | 원본 엔터티의 관련 항목에 연결할 연결 개체의 데이터베이스 필드입니다. 쉼표로 구분된 필드입니다. | |
--linking.target.fields |
❌ 아니요 | ✔️ 예 | 문자열 | 대상 엔터티의 관련 항목에 연결할 연결 개체의 데이터베이스 필드입니다. 쉼표로 구분된 필드입니다. | |
--relationship.fields |
❌ 아니요 | ✔️ 예 | 문자열 | 엔터티 매핑에 사용할 필드를 지정합니다. 예: --relationship.fields "id:book_id" . 여기서 id sourceEntity의 열을 나타내고 targetEntity에서 book_id . 지정하지 않은 경우 기본 원본 간에 외세 키가 필요합니다. |
|
-m,--맵 | ❌ 아니요 | ✔️ 예 | 문자열 | 데이터베이스 필드와 GraphQL 및 REST 필드 간의 매핑을 지정합니다. 형식: --map "backendName1:exposedName1, backendName2:exposedName2,..." . |
1 이 옵션은 --relationship
옵션을 사용하는 경우에만 필요합니다.
export
필요한 스키마를 파일로 내보내고 옵션에 따라 디스크에 저장합니다.
통사론
dab export [options]
예제
dab export --graphql -o ./schemas
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
--graphql |
❌ 아니요 | false |
❌ 아니요 | GraphQL 스키마를 내보냅니다. | |
-o,--output | ✔️ 예 | ✔️ 예 | 문자열 | 스키마 파일을 저장할 디렉터리를 지정합니다. | |
-g,--graphql-schema-file | ❌ 아니요 | schema.graphql |
✔️ 예 | 문자열 | Graphql 스키마 파일의 이름을 지정합니다. |
-c,--config | ❌ 아니요 | dab-config.json |
✔️ 예 | 문자열 | 구성 파일의 경로입니다. |
start
REST 및 GraphQL 요청을 제공하기 위해 제공된 구성 파일을 사용하여 런타임 엔진을 시작합니다.
통사론
dab start [options]
예제
dab start
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
--자세한 정보 표시 | ❌ 아니요 | ❌ 아니요 | 로깅 수준을 정보로 지정합니다. | ||
--LogLevel | ❌ 아니요 |
Debug 때 hostMode=development Error HostMode=Production |
✔️ 예 | 문자열 | 제공된 값으로 로깅 수준을 지정합니다. 예: 디버그, 오류, 정보 등 |
--no-https-redirect |
❌ 아니요 | ✔️ 예 | - | 자동 https 리디렉션을 사용하지 않도록 설정합니다. | |
-c,--config | ❌ 아니요 | dab-config.json |
✔️ 예 | 문자열 | 구성 파일의 경로입니다. |
메모
--verbose
및 --LogLevel
동시에 사용할 수 없습니다. 다른 로깅 수준에 대한 자세한 내용은.NET 로그 수준
validate
Data API Builder 런타임 엔진에서 사용하는 런타임 구성 파일의 유효성을 검사합니다. 유효성 검사 프로세스는 구성 파일이 스키마를 준수하고 런타임 엔진이 올바르게 작동하는 데 필요한 모든 정보를 포함하도록 합니다.
통사론
dab validate [options]
예제
dab validate
옵션
옵션 | 옵션 필요 | 기본값 | 필요한 값 | 값 형식 | 묘사 |
---|---|---|---|---|---|
-c,--config | ❌ 아니요 | dab-config.json |
✔️ 예 | 문자열 | 유효성 검사 대상인 구성 파일의 경로입니다. |
configure
dab configure
명령은 엔터티 섹션 외부에서 구성 속성 업데이트를 간소화하도록 설계되었습니다. 이 문서에서는 dab 구성 명령의 디자인, 기능 및 구현 세부 정보를 간략하게 설명합니다. 런타임 구성의 데이터 원본 및 런타임 섹션에서 구성 속성에 대한 CLI 편집을 지원합니다.
메모
dab configure
구성의 데이터 원본 및 런타임 섹션을 업데이트하기 위한 것입니다. 엔터티 섹션의 경우 dab 업데이트 명령이 이미 있습니다.
통사론
dab configure [options] [value]
예제
dab configure --runtime.rest.enabled true
옵션
구성 파일 속성 | CLI 플래그 | 데이터 형식 | Nullable | 묘사 |
---|---|---|---|---|
데이터 원본입니다. database-type |
--data-source.database-type |
문자열: MSSQL , PostgreSQL , CosmosDB_NoSQL , MySQL |
❌ | 이 값은 데이터베이스 형식을 나타냅니다. |
데이터 원본입니다. connection-string |
--data-source.connection-string |
문자열 | ❌ | 데이터 원본에 대한 연결 문자열을 참조합니다. |
데이터 원본입니다. options.database |
--data-source.options.database |
문자열 | ✅ | NoSql용 Cosmos DB의 데이터베이스 이름을 참조합니다. |
데이터 원본입니다. options.container |
--data-source.options.container |
문자열 | ✅ | NoSql용 Cosmos DB의 컨테이너 이름을 참조합니다. |
데이터 원본입니다. options.schema |
--data-source.options.schema |
문자열 | ✅ | NoSql용 Cosmos DB에 대한 스키마 경로를 제공합니다. |
데이터 원본입니다. options.set-session-context |
--data-source.options.set-session-context |
부울: true , false (기본값: true ) |
✅ | 세션 컨텍스트를 사용하도록 설정할지 여부입니다. |
런타임. rest.enabled |
--runtime.rest.enabled |
부울: true , false (기본값: true ) |
❌ | DAB의 REST 엔드포인트를 사용하도록 설정할지 여부를 의미합니다. |
런타임. rest.path |
--runtime.rest.path |
문자열(기본값: /api ) |
❌ | DAB의 REST 엔드포인트 경로를 사용자 지정합니다. 조건: '/'이 있는 접두사, 공백 없음 및 예약 문자 없음 |
런타임. rest.request-body-strict |
--runtime.rest.request-body-strict |
부울: true , false (기본값: true ) |
✅ | 불필요한 REST 요청 본문 필드를 허용/금지합니다. |
런타임. graphql.enabled |
--runtime.graphql.enabled |
부울: true , false (기본값: true ) |
❌ | DAB의 GraphQL 엔드포인트를 사용/사용하지 않도록 설정합니다. |
런타임. graphql.path |
--runtime.graphql.path |
문자열(기본값: /graphql ) |
❌ | DAB의 GraphQL 엔드포인트 경로를 사용자 지정합니다. 조건: '/'이 있는 접두사, 공백 없음 및 예약 문자 없음 |
런타임. graphql.depth-limit |
--runtime.graphql.depth-limit |
정수 | ✅ | 이는 graphQL 중첩 쿼리의 허용되는 최대 깊이를 나타냅니다. 허용되는 값: (0,2147483647] 포함) 기본값은 무한대입니다. -1 사용하여 제한을 제거합니다. |
런타임. graphql.allow-introspection |
--runtime.graphql.allow-introspection |
부울: true , false (기본값: true ) |
✅ | GraphQL 스키마에서 GraphQL 내성 요청을 허용/거부합니다. |
런타임. graphql.multiple-mutations.create.enabled |
--runtime.graphql.multiple-mutations.create.enabled |
부울: true , false (기본값: true ) |
✅ | DAB의 생성된 GraphQL 스키마에서 다중 변형 만들기 작업을 사용하거나 사용하지 않도록 설정합니다. |
런타임. host.mode |
--runtime.host.mode |
문자열: Development , Production 기본값: Development |
❌ | 개발 또는 프로덕션에서 DAB의 호스트 실행 모드를 설정합니다. |
런타임. host.cors.origins |
--runtime.host.cors.origins |
문자열 배열 | ✅ | CORS에서 허용되는 원본을 덮어쓰려면 이 옵션을 사용합니다. 기본값: [] (공백으로 구분된 문자열 배열). |
런타임. host.cors.allow-credentials |
--runtime.host.cors.allow-credentials |
부울: true , false (기본값: false ) |
✅ | --host.cors.allow-credentials에서 Access-Control Allow-Credentials 헤더에 대한 값을 설정합니다. |
런타임. host.authentication.provider |
--runtime.host.authentication.provider |
문자열: StaticWebApps , AppService , AzureAD , Jwt |
✅ | 인증 공급자의 이름을 구성합니다. 기본값: StaticWebApps . |
런타임. host.authentication.jwt.audience |
--runtime.host.authentication.jwt.audience |
문자열 배열 | ✅ | 이를 사용하여 Jwt 토큰의 의도된 받는 사람을 구성합니다. |
런타임. host.authentication.jwt.issuer |
--runtime.host.authentication.jwt.issuer |
문자열 | ✅ | 이는 Jwt 토큰을 발급한 엔터티를 나타냅니다. |
런타임. cache.enabled |
--runtime.cache.enabled |
부울: true , false (기본값: false ) |
✅ | DAB의 캐시를 전역적으로 사용/사용하지 않도록 설정합니다. (또한 각 엔터티의 캐시를 별도로 사용하도록 설정해야 합니다.). |
런타임. cache.ttl-seconds |
--runtime.cache.ttl-seconds |
정수(기본값: 5 ) |
✅ | DAB 캐시의 전역 기본 시간(초)을 사용자 지정합니다. |