数据 API 生成器命令行接口

The Data API builder command-line interface (CLI) (dab CLI or dab) is a command line tool that streamlines the local development experience for applications using Data API builder.

Tip

数据 API 生成器 CLI 附带集成帮助系统。 若要获取可用命令的列表,请使用 --help 命令上的 dab 选项。

dab --help

若要获取有关特定命令的帮助,请使用 --help 选项。 例如,若要详细了解 init 命令:

dab init --help

init

初始化数据 API 生成器运行时引擎的运行时配置。 它创建一个新的 JSON 文件,其中包含作为选项提供的属性。

Syntax

dab init [options]

Examples

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

选项

选项 Option Required Default Value Value Required Value Type Description
--database-type ✔️ Yes ✔️ Yes 字符串 要连接的数据库的类型。 支持的值:mssqlcosmosdb_nosqlcosmosdb_postgresqlmysqlpostgresql
--connection-string ❌ 否 "" ✔️ Yes 字符串 连接到数据库的连接详细信息。
--cosmosdb_nosql-database ✔️ 是 ¹ ✔️ Yes 字符串 Cosmos DB for NoSql 的数据库名称。
--cosmosdb_nosql-container ❌ 否 ✔️ Yes 字符串 Cosmos DB for NoSql 的容器名称。
--graphql-schema ✔️ 是 ¹ ✔️ Yes 字符串 GraphQL 架构路径
--set-session-context ❌ 否 false ❌ 否 允许使用会话上下文将数据发送到 MsSql。
--host-mode ❌ 否 production ✔️ Yes 字符串 指定主机模式 - 开发或生产
--cors-origin ❌ 否 "" ✔️ Yes 字符串 指定允许的来源列表。
--auth.provider ❌ 否 StaticWebApps ✔️ Yes 字符串 指定标识提供者。
--rest.path ❌ 否 /api ✔️ Yes 字符串 指定 REST 终结点的前缀。
--rest.enabled ❌ 否 true ✔️ Yes boolean 为所有实体启用 REST 终结点。
--rest.request-body-strict ❌ 否 true ✔️ Yes 不允许请求正文中的多余的字段。
--graphql.path ❌ 否 /graphql ✔️ Yes 字符串 指定 GraphQL 终结点的前缀。
--graphql.enabled ❌ 否 true ✔️ Yes boolean 为所有实体启用 GraphQL 终结点。
--graphql.multiple-create.enabled ❌ 否 false ✔️ Yes 在 GraphQL 中启用多个创建功能。
--auth.audience ❌ 否 ✔️ Yes 字符串 标识 Json Web 令牌 (JWT) 适用于的收件人。
--auth.issuer ❌ 否 ✔️ Yes 字符串 指定颁发 JWT 令牌的参与方。
-c,--config ❌ 否 dab-config.json ✔️ Yes 字符串 配置文件的路径。

ー 仅当 --database-type 设置为 cosmosdb_nosql时,才需要此选项。

add

将新数据库实体添加到配置文件。 在执行此命令之前,请确保已有配置文件,否则返回错误。

Syntax

dab add [entity-name] [options]

Examples

dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"

选项

选项 Option Required Default Value Value Required Value Type Description
-s,--source ✔️ Yes ✔️ Yes 字符串 源表或容器的名称。
--permissions ✔️ Yes ✔️ Yes 字符串 访问源表或容器所需的权限。 格式:[role]:[actions]
--source.type ❌ 否 table ✔️ Yes 字符串 数据库对象的类型。 支持的值:tableviewstored-procedure
--source.params ❌ 否 ✔️ 是,如果 proc 具有参数 字符串 存储过程参数及其数据类型的字典。 支持的数据类型为 stringnumberboolean。 参数采用以下格式指定:paramName:type。 例如:--source.params "id:number,isActive:boolean,name:string"
--source.key-fields ✔️ 是 ¹ ✔️ Yes 字符串 要用作表和视图的主键的一个或多个字段。 逗号分隔值。 示例 --source.key-fields "id,name,type"
--rest ❌ 否 区分大小写的实体名称 ✔️ Yes 字符串 REST API 的路由。 示例:--rest: false -> 禁用此实体的 REST API 调用。 --rest: true -> 实体名称成为其余路径。 --rest: "customPathName" -> 提供的 customPathName 成为 REST 路径。
--rest.methods ❌ 否 post ✔️ Yes 字符串 存储过程支持的 HTTP 操作。 将操作指定为逗号分隔列表。 有效的 HTTP 操作包括:[get、post、put、patch、delete]。
--graphql ❌ 否 区分大小写的实体名称 ✔️ Yes Bool/String 为 GraphQL 公开的实体类型。 示例:--graphql: false -> 禁用此实体的 graphql 调用。 --graphql: true -> 使用默认名称公开 GraphQL 的实体。 对于查询和突变名称,将考虑实体名称的单一形式。 --graphql: "customQueryName" -> 显式设置单一值,而 DAB 将提供的查询和突变值复数化。 --graphql: "singularName:pluralName" -> 设置用于查询和突变的单数值和复数值(用冒号 :分隔)。
--graphql.operation ❌ 否 mutation ✔️ Yes 字符串 存储过程支持 GraphQL 操作。 支持的值:querymutation
--fields.include ❌ 否 ✔️ Yes 字符串 有权访问的字段。
--fields.exclude ❌ 否 ✔️ Yes 字符串 从操作列表中排除的字段。
--policy-database ❌ 否 ✔️ Yes 字符串 指定在发送到数据库的查询中注入的 OData 样式筛选器规则。
-c,--config ❌ 否 dab-config.json ✔️ Yes 字符串 配置文件的路径。

ー 仅当 --source.type 设置为 view时,才需要此选项。

update

更新配置文件中任何数据库实体的属性。

Note

dab update 支持 dab add支持的所有选项。 此外,它还支持列出的选项。

Syntax

dab update [entity-name] [options]

Examples

dab update Publisher --permissions "authenticated:*"

选项

选项 Option Required Default Value Value Required Value Type Description
--relationship ❌ 否 ✔️ Yes 字符串 指定两个实体之间的关系。 提供关系的名称。
--cardinality ✔️ 是 ¹ ✔️ Yes 字符串 指定两个实体之间的基数。 可以是一个或多个。
--target.entity ✔️ 是 ¹ ✔️ Yes 字符串 源实体与之关联的另一个公开实体。
--linking.object ❌ 否 ✔️ Yes 字符串 用于支持 M:N 关系的数据库对象。
--linking.source.fields ❌ 否 ✔️ Yes 字符串 链接对象中的数据库字段,用于连接到源实体中的相关项。 逗号分隔字段。
--linking.target.fields ❌ 否 ✔️ Yes 字符串 链接对象中的数据库字段,以连接到目标实体中的相关项。 逗号分隔字段。
--relationship.fields ❌ 否 ✔️ Yes 字符串 指定要用于映射实体的字段。 示例:--relationship.fields "id:book_id"。 此处,id 表示 sourceEntity 中的列,同时从 targetEntity book_id。 如果未指定,则基础源之间需要外键。
-m,--map ❌ 否 ✔️ Yes 字符串 指定数据库字段与 GraphQL 和 REST 字段之间的映射。 格式:--map "backendName1:exposedName1, backendName2:exposedName2,..."

ー 仅当使用 --relationship 选项时才需要此选项。

export

将所需的架构导出为文件,并根据选项保存到磁盘。

Syntax

dab export [options]

Examples

dab export --graphql -o ./schemas

选项

选项 Option Required Default Value Value Required Value Type Description
--graphql ❌ 否 false ❌ 否 导出 GraphQL 架构。
-o,--output ✔️ Yes ✔️ Yes 字符串 指定要保存架构文件的目录。
-g,--graphql-schema-file ❌ 否 schema.graphql ✔️ Yes 字符串 指定 Graphql 架构文件的名称。
-c,--config ❌ 否 dab-config.json ✔️ Yes 字符串 配置文件的路径。

start

使用提供的配置文件启动运行时引擎,以便提供 REST 和 GraphQL 请求。

Syntax

dab start [options]

Examples

dab start

选项

选项 Option Required Default Value Value Required Value Type Description
--verbose ❌ 否 ❌ 否 将日志记录级别指定为信息。
--LogLevel ❌ 否 DebughostMode=developmentError ✔️ Yes 字符串 将日志记录级别指定为提供的值。 示例:调试、错误、信息等。
--no-https-redirect ❌ 否 ✔️ Yes - 禁用自动 https 重定向。
-c,--config ❌ 否 dab-config.json ✔️ Yes 字符串 配置文件的路径。

Note

不能同时使用 --verbose--LogLevel。 有关不同日志记录级别的详细信息,请参阅 .NET 日志级别

validate

验证数据 API 生成器运行时引擎使用的运行时配置文件。 验证过程可确保配置文件符合架构,并包含运行时引擎正常运行所需的所有信息。

Syntax

dab validate [options]

Examples

dab validate

选项

选项 Option Required Default Value Value Type Description
-c,--config ❌ 否 dab-config.json 字符串 配置文件的路径,该文件是验证的目标。

configure

dab configure 命令旨在简化更新 data-sourceruntime 配置属性。 对于该 entities 部分,请使用 dab update 命令。

Syntax

dab configure [options] [value]

数据源选项

Section 数据源配置 类型
Core --data-source.database-type 枚举
Core --data-source.connection-string 字符串
选项 --data-source.options.database 字符串
选项 --data-source.options.container 字符串
选项 --data-source.options.schema 字符串
选项 --data-source.options.set-session-context 布尔值 (truefalse

Example

dab configure --data-source.database-type mssql
dab configure --data-source.database-type "mssql"

Runtime options

Section Runtime Configuration 类型
REST --runtime.rest.enabled 布尔值 (truefalse
REST --runtime.rest.path 字符串
REST --runtime.rest.request-body-strict 布尔值 (truefalse
GraphQL --runtime.graphql.enabled 布尔值 (truefalse
GraphQL --runtime.graphql.path 字符串
GraphQL --runtime.graphql.depth-limit 整数
GraphQL --runtime.graphql.allow-introspection 布尔值 (truefalse
GraphQL --runtime.graphql.multiple-mutations.create.enabled 布尔值 (truefalse
Host --runtime.host.mode 枚举
Host --runtime.host.cors.origins 字符串数组
Host --runtime.host.cors.allow-credentials 布尔值 (truefalse
Host --runtime.host.authentication.provider 枚举
Host --runtime.host.authentication.jwt.audience 字符串数组
Host --runtime.host.authentication.jwt.issuer 字符串
Cache --runtime.cache.enabled 布尔值 (truefalse
Cache --runtime.cache.ttl-seconds 整数

Example

dab configure --runtime.rest.enabled true
dab configure --runtime.rest.enabled "true"