共用方式為


數據 API 產生器命令列介面參考

Data API builder 命令行介面 (CLI) (dab CLIdab) 是一種命令行工具,可簡化使用數據 API 產生器之應用程式的本機開發體驗。

提示

數據 API 產生器 CLI 隨附整合式說明系統。 若要取得可用的命令清單,請使用 dab 命令上的 [--help] 選項。

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 ✔️ 是的 ✔️ 是的 字串 要連線的資料庫類型。 支援的值:mssqlcosmosdb_nosqlcosmosdb_postgresqlmysqlpostgresql
--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.disabled ❌ 否 false ❌ 否 停用所有實體的 REST 端點。
--rest.enabled ❌ 否 true ✔️ 是的 為所有實體啟用 REST 端點。
--rest.request-body-strict ❌ 否 true ✔️ 是的 不允許要求本文中的無關欄位。
--graphql.path ❌ 否 /graphql ✔️ 是的 字串 指定 GraphQL 端點的前置詞。
--graphql.disabled ❌ 否 false ❌ 否 停用所有實體的 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 ✔️ 是的 字串 資料庫物件的類型。 支援的值:tableviewstored-procedure
--source.params ❌ 否 ✔️ 是的 字串 預存程序參數及其數據類型的字典。 支援的資料類型為 stringnumberboolean。 參數格式為: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 作業。 支援的值:querymutation
--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 ❌ 否 hostMode=developmentDebug,否則 ErrorHostMode=Production ✔️ 是的 字串 將記錄層級指定為提供的值。 範例:偵錯、錯誤、資訊等。
--no-https-redirect ❌ 否 false ✔️ 是的 字串 停用自動 HTTPs 重新導向。
-c,--config ❌ 否 dab-config.json ✔️ 是的 字串 組態檔的路徑。

注意

您無法同時使用 --verbose--LogLevel。 如需不同記錄層級的詳細資訊,請參閱.NET 記錄層級。

validate

驗證數據 API 產生器運行時間引擎所使用的運行時間組態檔。 驗證程式可確保組態檔符合架構規範,並包含運行時間引擎正常運作所需的所有資訊。

語法

dab validate [options]

例子

dab validate

選項

選項 必要選項 預設值 必要值 實值類型 描述
-c,--config ❌ 否 dab-config.json ✔️ 是的 字串 驗證目標組態檔的路徑。