기존 데이터 API 작성기 구성 파일에 새 엔터티 정의를 추가합니다. 을 사용하여 만든 dab init구성이 이미 있어야 합니다. 만든 후 엔터티를 수정하는 데 사용합니다 dab update .
팁 (조언)
새 엔터티 dab update 를 만들고 발전하는 데 사용합니다dab add. 필드 이름 다시 매핑(--map)은 updateadd.
Syntax
dab add <entity-name> [options]
한눈에 보기
| Option | 요약 |
|---|---|
<entity-name> |
필수 위치 인수입니다. 논리적 엔터티 이름입니다. |
-c, --config |
구성 파일 경로입니다. 기본값 dab-config.json. |
--cache.enabled |
엔터티에 대한 캐싱을 사용/사용하지 않도록 설정합니다. |
--cache.ttl |
Time-to-Live(초)를 캐시합니다. |
--description |
엔터티에 대한 자유 형식 설명입니다. |
--fields.exclude |
쉼표로 구분된 제외 필드입니다. |
--fields.include |
쉼표로 구분된 허용 필드(* = 모두)입니다. |
--graphql |
GraphQL 노출: false, true, singular또는 singular:plural. |
--graphql.operation |
저장 프로시저만.
query 또는 mutation (기본 변형) |
--permissions |
필수 사항입니다. 하나 이상의 role:actions 쌍. 반복. |
--policy-database |
DB 쿼리에 적용된 OData 스타일 필터입니다. |
--policy-request |
DB 호출 전에 평가된 요청 정책입니다. |
--rest |
REST 노출: false또는 true사용자 지정 경로입니다. |
--rest.methods |
저장 프로시저만. 허용되는 HTTP 동사입니다. 기본 POST입니다. |
-s, --source |
필수 사항입니다. 데이터베이스 개체 이름(테이블, 뷰 또는 저장 프로시저). |
--source.key-fields |
보기 또는 PK가 유추되지 않은 경우에 필요합니다. procs에는 허용되지 않습니다. |
--source.params |
저장 프로시저만. 기본 매개 변수 값입니다. |
--source.type |
원본 형식: table, viewstored-procedure (기본 테이블) |
<entity-name>
구성에 있는 엔터티의 논리적 이름입니다. 대/소문자를 구분합니다.
Example
dab add Book --source dbo.Books --permissions "anonymous:read"
결과 구성
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{
"role": "anonymous",
"actions": [ "read" ]
}
]
}
}
}
-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": [ "read" ] }
],
"cache": {
"enabled": true
}
}
}
}
--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": [ "read" ] }
],
"cache": {
"ttl-seconds": 300
}
}
}
}
--description
엔터티에 대한 자유 텍스트 설명입니다.
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": [ "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": [ "read" ] }
],
"graphql": {
"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": [ "read" ] }
],
"graphql": {
"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": [ "read" ] }
],
"graphql": {
"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": [ "execute" ] }
],
"graphql": {
"operation": "query"
}
}
}
}
--permissions
역할→ 작업 쌍을 정의합니다. 여러 역할에 반복 플래그를 사용합니다.
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"
결과 구성
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] },
{ "role": "authenticated", "actions": [ "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": [ "read" ] }
],
"policies": {
"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": [ "read" ] }
],
"policies": {
"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": [ "read" ] }
],
"rest": {
"path": "BooksApi"
}
}
}
}
--rest.methods
저장 프로시저만. 실행에 허용되는 HTTP 동사입니다. 기본값은 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": [ "execute" ] }
],
"rest": {
"path": "BookProc",
"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": [ "read" ] }
]
}
}
}
--source.key-fields
보기를 위한 필수 항목입니다. 유추 가능한 PK가 없는 테이블에도 필요합니다. 저장 프로시저에는 허용되지 않습니다.
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",
"keyFields": [ "id", "region" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
--source.params
저장 프로시저만. 쉼표로 구분된 name:value 쌍입니다. 테이블 또는 뷰에 대해서는 허용되지 않습니다.
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",
"params": {
"year": 2024,
"active": true
}
},
"permissions": [
{ "role": "admin", "actions": [ "execute" ] }
]
}
}
}
--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": [ "read" ] }
]
}
}
}