다음을 통해 공유


update 명령

데이터 API 작성기 구성 파일에서 기존 엔터티 정의를 업데이트합니다. 이 명령을 사용하여 엔터티가 이미 추가된 후 원본 메타데이터, 사용 권한, 노출(REST/GraphQL), 정책, 캐싱, 관계, 매핑 및 설명이 포함된 메타데이터를 조정합니다.

팁 (조언)

새 엔터티 dab update 를 만들고 발전하는 데 사용합니다dab add. 필드 이름 다시 매핑(--map)은 updateadd.

Syntax

dab update <entity-name> [options]

한눈에 보기

Option 요약
<entity-name> 필수 위치 인수입니다. 논리적 엔터티 이름입니다.
-c, --config 구성 파일의 경로입니다. 기본 해상도는 생략하면 적용됩니다.
--description 엔터티 설명을 대체합니다.

캐시

Option 요약
--cache.enabled 엔터티 캐싱을 사용하거나 사용하지 않도록 설정합니다.
--cache.ttl Time-to-Live(초)를 캐시합니다.

Fields

Option 요약
--fields.exclude 제외된 필드의 쉼표로 구분된 목록입니다.
--fields.include 포함된 필드의 쉼표로 구분된 목록(* = 모두)입니다.
-m, --map 필드 매핑 쌍.name:alias 전체 집합을 대체합니다.

GraphQL

Option 요약
--graphql GraphQL 노출: false, true, singular또는 singular:plural.
--graphql.operation 저장 프로시저만: query 또는 mutation (기본 변형)

사용 권한 및 정책

Option 요약
--permissions 하나 이상의 role:actions 쌍. 기존 목록을 대체합니다.
--policy-database DB 쿼리에 삽입된 OData 스타일 필터입니다.
--policy-request 데이터베이스 전 요청 필터입니다.

관계

Option 요약
--relationship 관계 이름입니다. 관계 옵션과 함께 사용합니다.
--relationship.fields 직접 관계에 대한 필드 매핑입니다.

REST

Option 요약
--rest REST 노출: false또는 true사용자 지정 경로입니다.
--rest.methods 저장 프로시저만. 허용되는 HTTP 동사를 대체합니다.

출처

Option 요약
-s, --source 기본 데이터베이스 개체 이름입니다.
--source.key-fields 뷰 또는 PK가 아닌 테이블에 필요합니다.
--source.params 저장 프로시저만. 기본 매개 변수를 대체합니다.
--source.type 원본 형식: table, view또는 stored-procedure.

--cache.enabled

이 엔터티에 대한 캐싱을 사용하거나 사용하지 않도록 설정합니다.

Example

dab update Book --cache.enabled true

결과 구성

{
  "entities": {
    "Book": {
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

캐시 TL(Time-to-Live)을 초 단위로 설정합니다. 캐싱을 사용하는 경우에만 유효합니다.

Example

dab update Book --cache.ttl 600

결과 구성

{
  "entities": {
    "Book": {
      "cache": {
        "ttl-seconds": 600
      }
    }
  }
}

비고

캐시를 사용하지 않도록 설정할 때 TTL을 제공하는 것은 캐싱을 사용하도록 설정할 때까지 적용되지 않습니다.

--description

엔터티 설명을 대체합니다.

Example

dab update Book --description "Updated description"

결과 구성

{
  "entities": {
    "Book": {
      "description": "Updated description"
    }
  }
}

--fields.exclude

제외할 필드의 쉼표로 구분된 목록입니다.

Example

dab update Book --fields.exclude "internal_flag,secret_note"

결과 구성

{
  "entities": {
    "Book": {
      "graphql": {
        "fields": {
          "exclude": [ "internal_flag", "secret_note" ]
        }
      }
    }
  }
}

--fields.include

포함할 필드의 쉼표로 구분된 목록입니다. * 에는 모든 필드가 포함됩니다. 기존 포함 목록을 대체합니다.

Example

dab update Book --fields.include "id,title,author"

결과 구성

{
  "entities": {
    "Book": {
      "graphql": {
        "fields": {
          "include": [ "id", "title", "author" ]
        }
      }
    }
  }
}

--graphql

GraphQL 노출을 제어합니다.

Example

dab update Book --graphql book:books

결과 구성

{
  "entities": {
    "Book": {
      "graphql": {
        "singular": "book",
        "plural": "books"
      }
    }
  }
}

--graphql.operation

저장 프로시저만. 작업 유형을 설정합니다. 기본값은 mutation입니다.

Example

dab update RunReport --graphql.operation query

결과 구성

{
  "entities": {
    "RunReport": {
      "graphql": {
        "operation": "query"
      }
    }
  }
}

비고

--graphql.operation 테이블 또는 뷰에 대한 제공은 무시됩니다.

-m, --map

데이터베이스 필드를 노출된 이름에 매핑합니다. 전체 매핑 집합을 바꿉니다.

Example

dab update Book --map "id:bookId,title:bookTitle"

결과 구성

{
  "entities": {
    "Book": {
      "mappings": {
        "id": "bookId",
        "title": "bookTitle"
      }
    }
  }
}

중요합니다

모든 기존 매핑을 덮어씁니다. 유지하려는 모든 매핑을 다시 지정합니다.

--permissions

모든 권한을 새 역할/작업 집합으로 대체합니다. 여러 역할에 대해 플래그를 반복합니다.

Example

dab update Book --permissions "anonymous:read" --permissions "authenticated:create,read,update"

결과 구성

{
  "entities": {
    "Book": {
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "read" ]
        },
        {
          "role": "authenticated",
          "actions": [ "create", "read", "update" ]
        }
      ]
    }
  }
}

중요합니다

사용 권한은 기존 목록을 대체합니다. 이전 권한은 삭제됩니다.

--policy-database

DB 쿼리에 추가된 OData 스타일 필터입니다.

Example

dab update Book --policy-database "region eq 'US'"

결과 구성

{
  "entities": {
    "Book": {
      "policies": {
        "database": "region eq 'US'"
      }
    }
  }
}

--policy-request

데이터베이스를 적중하기 전에 평가된 요청 수준 정책입니다.

Example

dab update Book --policy-request "@claims.role == 'admin'"

결과 구성

{
  "entities": {
    "Book": {
      "policies": {
        "request": "@claims.role == 'admin'"
      }
    }
  }
}

--relationship

관계를 정의하거나 업데이트합니다. 다른 관계 옵션과 함께 사용합니다.

Example

dab update Book --relationship publisher --cardinality one --target.entity Publisher --relationship.fields "publisher_id:id"

결과 구성

{
  "entities": {
    "Book": {
      "relationships": {
        "publisher": {
          "cardinality": "one",
          "target.entity": "Publisher",
          "fields": {
            "publisher_id": "id"
          }
        }
      }
    }
  }
}

--relationship.fields

직접 관계에 대한 콜론으로 구분된 필드 매핑입니다.

Example

dab update Book --relationship author --cardinality one --target.entity Author --relationship.fields "author_id:id"

결과 구성

{
  "entities": {
    "Book": {
      "relationships": {
        "author": {
          "cardinality": "one",
          "target.entity": "Author",
          "fields": {
            "author_id": "id"
          }
        }
      }
    }
  }
}

--rest

REST 노출을 제어합니다.

Example

dab update Book --rest BooksApi

결과 구성

{
  "entities": {
    "Book": {
      "rest": {
        "path": "BooksApi"
      }
    }
  }
}

--rest.methods

저장 프로시저만. 허용되는 HTTP 메서드를 대체합니다. 기본값은 POST입니다.

Example

dab update RunReport --rest true --rest.methods GET,POST

결과 구성

{
  "entities": {
    "RunReport": {
      "rest": {
        "path": "RunReport",
        "methods": [ "GET", "POST" ]
      }
    }
  }
}

비고

REST를 사용하지 --rest.methods 않도록 설정된 동안 제공하는 것은 아무런 영향을 주지 않습니다.

-s, --source

기본 데이터베이스 개체를 업데이트합니다.

Example

dab update Book --source dbo.Books

결과 구성

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      }
    }
  }
}

--source.key-fields

유추된 PK가 없는 뷰 또는 테이블의 경우 기존 키를 대체합니다. 저장 프로시저에는 유효하지 않습니다.

Example

dab update SalesSummary --source.type view --source.key-fields "year,region"

결과 구성

{
  "entities": {
    "SalesSummary": {
      "source": {
        "type": "view",
        "object": "SalesSummary",
        "keyFields": [ "year", "region" ]
      }
    }
  }
}

비고

저장 프로시저와 함께 사용할 --source.key-fields 수 없습니다.

--source.params

저장 프로시저만. 매개 변수 기본값을 대체합니다.

Example

dab update RunReport --source.type stored-procedure --source.params "year:2024,region:west"

결과 구성

{
  "entities": {
    "RunReport": {
      "source": {
        "type": "stored-procedure",
        "object": "RunReport",
        "params": {
          "year": 2024,
          "region": "west"
        }
      }
    }
  }
}

비고

테이블 또는 뷰와 함께 사용할 --source.params 수 없습니다.

--source.type

원본 개체 유형을 변경합니다.

Example

dab update Book --source.type view

결과 구성

{
  "entities": {
    "Book": {
      "source": {
        "type": "view",
        "object": "Book"
      }
    }
  }
}

중요합니다

원본 형식을 변경하면 다른 속성이 무효화할 수 있습니다. 예를 들어 뷰에는 항상 키 필드가 필요합니다. 저장 프로시저는 키 필드를 정의할 수 없습니다.