數據 API 產生器命令列介面參考
Data API builder 命令行介面 (CLI) (dab CLI 或 dab
) 是一種命令行工具,可簡化使用數據 API 產生器之應用程式的本機開發體驗。
提示
數據 API 產生器 CLI 隨附整合式說明系統。 若要取得可用的命令清單,請使用 --help
命令上的 [dab
] 選項。
dab --help
若要取得特定命令的說明,請使用 --help
選項。 例如,若要深入瞭解 init
命令:
dab init --help
命令行動詞和選項
init
初始化數據 API 產生器運行時間引擎的運行時間組態。 它會使用提供做為選項的屬性來建立新的 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 | ✔️ 是 2 | ✔️ 是的 | 字串 | 適用於 NoSql 的 Cosmos DB 資料庫名稱。 | |
--cosmosdb_nosql-container | ❌ 否 | ✔️ 是的 | 字串 | 適用於 NoSql 的 Cosmos DB 容器名稱。 | |
--graphql-schema | ✔️ 是 2 | ✔️ 是的 | 字串 | GraphQL 架構路徑 | |
--set-session-context | ❌ 否 | false |
❌ 否 | 使用會話內容啟用將數據傳送至 MsSql。 | |
--host-mode | ❌ 否 | production |
✔️ 是的 | 字串 | 指定主機模式 - 開發或生產環境 |
--cors-origin | ❌ 否 | "" |
✔️ 是的 | 字串 | 指定允許的來源清單。 |
--auth.provider | ❌ 否 | StaticWebApps |
✔️ 是的 | 字串 | 指定識別提供者。 |
--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 | ❌ 否 | ✔️ 是的 | 字串 | 識別 Json Web 令牌 (JWT) 的收件者。 | |
--auth.issuer | ❌ 否 | ✔️ 是的 | 字串 | 指定發出 JWT 令牌的合作物件。 | |
-c,--config | ❌ 否 | dab-config.json |
✔️ 是的 | 字串 | 組態檔的路徑。 |
ー 只有在 --database-type
設定為 cosmosdb_nosql
時,才需要此選項。
add
將新的資料庫實體新增至組態檔。 在執行此命令之前,請確定您已經有組態檔,否則會傳回錯誤。
語法
dab add [entity-name] [options]
例子
dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"
選項
選項 | 必要選項 | 預設值 | 必要值 | 實值類型 | 描述 |
---|---|---|---|---|---|
-s,--source | ✔️ 是的 | ✔️ 是的 | 字串 | 源數據表或容器的名稱。 | |
--permissions | ✔️ 是的 | ✔️ 是的 | 字串 | 存取源數據表或容器所需的許可權。 格式:[role]:[actions] 。 |
|
--source.type | ❌ 否 | table |
✔️ 是的 | 字串 | 資料庫物件的類型。 支援的值:table 、view 、stored-procedure 。 |
--source.params | ❌ 否 | ✔️ 是,如果 proc 具有參數 | 字串 | 預存程序參數及其數據類型的字典。 支援的資料類型為 string 、number 與 boolean 。 參數格式為:paramName:type 。 例如:--source.params "id:number,isActive:boolean,name:string" 。 |
|
--source.key 欄位 | ✔️ 是 2 | ✔️ 是的 | 字串 | 一或多個字段僅做為數據表和檢視的主鍵。 逗號分隔值。 範例 --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 |
✔️ 是的 | 字串 | 組態檔的路徑。 |
ー 只有在 --source.type
設定為 view
時,才需要此選項。
update
更新組態檔中任何資料庫實體的屬性。
注意
dab update
支援 dab add
支援的所有選項。 此外,它也支援列出的選項。
語法
dab update [entity-name] [options]
例子
dab update Publisher --permissions "authenticated:*"
選項
選項 | 必要選項 | 預設值 | 必要值 | 實值類型 | 描述 |
---|---|---|---|---|---|
--relationship | ❌ 否 | ✔️ 是的 | 字串 | 指定兩個實體之間的關聯性。 提供關聯性的名稱。 | |
--基數 | ✔️ 是 2 | ✔️ 是的 | 字串 | 指定兩個實體之間的基數。 可以是一或多個。 | |
--target.entity | ✔️ 是 2 | ✔️ 是的 | 字串 | 來源實體所關聯的另一個公開實體。 | |
--linking.object | ❌ 否 | ✔️ 是的 | 字串 | 用來支援 M:N 關聯性的資料庫物件。 | |
--linking.source.fields | ❌ 否 | ✔️ 是的 | 字串 | 鏈接物件中的資料庫欄位,以連接到來源實體中的相關專案。 逗號分隔欄位。 | |
--linking.target.fields | ❌ 否 | ✔️ 是的 | 字串 | 鏈接物件中的資料庫欄位,以連接到目標實體中的相關專案。 逗號分隔欄位。 | |
--relationship.fields | ❌ 否 | ✔️ 是的 | 字串 | 指定要用於對應實體的欄位。 範例:--relationship.fields "id:book_id" 。 在這裡,id 代表 sourceEntity 的數據行,而從 targetEntity book_id 。 如果未指定,則基礎來源之間需要外鍵。 |
|
-m,--map | ❌ 否 | ✔️ 是的 | 字串 | 指定資料庫欄位與 GraphQL 與 REST 欄位之間的對應。 格式:--map "backendName1:exposedName1, backendName2:exposedName2,..." 。 |
ー 只有在使用 --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
選項
選項 | 必要選項 | 預設值 | 必要值 | 實值類型 | 描述 |
---|---|---|---|---|---|
--verbose | ❌ 否 | ❌ 否 | 將記錄層級指定為參考。 | ||
--LogLevel | ❌ 否 |
Debug 時 hostMode=development ,否則 Error HostMode=Production |
✔️ 是的 | 字串 | 將記錄層級指定為提供的值。 範例:偵錯、錯誤、資訊等。 |
--no-https-redirect | ❌ 否 | ✔️ 是的 | - | 停用自動 HTTPs 重新導向。 | |
-c,--config | ❌ 否 | dab-config.json |
✔️ 是的 | 字串 | 組態檔的路徑。 |
注意
您無法同時使用 --verbose
和 --LogLevel
。 如需不同記錄層級的詳細資訊,請參閱
validate
驗證數據 API 產生器運行時間引擎所使用的運行時間組態檔。 驗證程式可確保組態檔符合架構規範,並包含運行時間引擎正常運作所需的所有資訊。
語法
dab validate [options]
例子
dab validate
選項
選項 | 必要選項 | 預設值 | 必要值 | 實值類型 | 描述 |
---|---|---|---|---|---|
-c,--config | ❌ 否 | dab-config.json |
✔️ 是的 | 字串 | 驗證目標組態檔的路徑。 |
configure
dab configure
命令的設計目的是簡化在實體區段外部更新組態屬性。 本檔概述 dab configure 命令的設計、功能和實作詳細數據。 它支援在運行時間組態的數據源和運行時間區段中編輯組態屬性的 CLI。
注意
dab configure
僅適用於更新組態的數據源和運行時間區段。針對 [實體] 區段,我們已經擁有 dab update 命令。
語法
dab configure [options] [value]
例子
dab configure --runtime.rest.enabled true
選項
組態檔屬性 | CLI 旗標 | 數據類型 | 空 | 描述 |
---|---|---|---|---|
數據源。 database-type |
|
字串:MSSQL 、PostgreSQL 、CosmosDB_NoSQL 、MySQL |
❌ | 這個值表示資料庫類型。 |
數據源。 connection-string |
|
字串 | ❌ | 參考數據源的連接字串。 |
數據源。 options.database |
|
字串 | ✅ | 是指適用於 NoSql 的 Cosmos DB 資料庫名稱。 |
數據源。 options.container |
|
字串 | ✅ | 是指適用於 NoSql 的 Cosmos DB 容器名稱。 |
數據源。 options.schema |
|
字串 | ✅ | 提供適用於 NoSql 的 Cosmos DB 架構路徑。 |
數據源。 options.set-session-context |
|
布林值: true , false (預設值: true ) |
✅ | 是否要啟用會話內容。 |
運行。 rest.enabled |
|
布林值: true , false (預設值: true ) |
❌ | 表示是否啟用 DAB 的 REST 端點。 |
運行。 rest.path |
|
字串 (預設值:/api ) |
❌ | 自定義 DAB 的 REST 端點路徑。 條件:前置詞為 『/』、無空格和無保留字元。 |
運行。 rest.request-body-strict |
|
布林值: true , false (預設值: true ) |
✅ | 允許/禁止多餘的 REST 要求本文字段。 |
運行。 graphql.enabled |
|
布林值: true , false (預設值: true ) |
❌ | 啟用/停用 DAB 的 GraphQL 端點。 |
運行。 graphql.path |
|
字串 (預設值:/graphql ) |
❌ | 自定義 DAB 的 GraphQL 端點路徑。 條件:前置詞為 『/』、無空格和無保留字元。 |
運行。 graphql.depth-limit |
|
整數 | ✅ | 這是指 graphQL 巢狀查詢的允許深度上限。 允許的值:(0,2147483647] 包含。 預設值為無限大。 使用 -1 移除限制。 |
運行。 graphql.allow-introspection |
|
布林值: true , false (預設值: true ) |
✅ | 允許/拒絕 GraphQL 架構中的 GraphQL 反省要求。 |
運行。 graphql.multiple-mutations.create.enabled |
|
布林值: true , false (預設值: true ) |
✅ | 在 DAB 產生的 GraphQL 架構上啟用/停用多重突變建立作業。 |
運行。 host.mode |
|
字串:Development ,Production 預設值:Development |
❌ | 在開發或生產環境中設定 DAB 的主機執行模式。 |
運行。 host.cors.origins |
|
字串陣列 | ✅ | 使用此選項可覆寫 CORS 中允許的來源。 默認值:[] (空格分隔的字串陣列)。 |
運行。 host.cors.allow-credentials |
|
布林值: true , false (預設值: false ) |
✅ | 在 --host.cors.allow-credentials 中設定 Access-Control Allow-Credentials 標頭的值。 |
運行。 host.authentication.provider |
|
字串:StaticWebApps 、AppService 、AzureAD 、Jwt |
✅ | 設定驗證提供者的名稱。 預設值:StaticWebApps 。 |
運行。 host.authentication.jwt.audience |
|
字串陣列 | ✅ | 使用此選項可設定 Jwt 令牌的預定收件者。 |
運行。 host.authentication.jwt.issuer |
|
字串 | ✅ | 這是指發行 Jwt 令牌的實體。 |
運行。 cache.enabled |
|
布林值: true , false (預設值: false ) |
✅ | 全域啟用/停用 DAB 的快取。 (您也必須個別啟用每個實體的快取。 |
運行。 cache.ttl-seconds |
|
整數(預設值:5 ) |
✅ | 自定義 DAB 快取的全域預設存留時間,以秒為單位。 |