다음을 통해 공유


add 명령

기존 데이터 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" ] }
      ]
    }
  }
}