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 | 字符串 | 要连接的数据库的类型。 支持的值:mssql 、cosmosdb_nosql 、cosmosdb_postgresql 、mysql 、postgresql 。 |
|
--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 | 字符串 | 数据库对象的类型。 支持的值:table 、view 、stored-procedure 。 |
--source.params |
❌ 否 | ✔️ 是,如果 proc 具有参数 | 字符串 | 存储过程参数及其数据类型的字典。 支持的数据类型为 string 、number 和 boolean 。 参数采用以下格式指定: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 操作。 支持的值:query 、mutation 。 |
--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 |
❌ 否 |
Debug 时 hostMode=development 时 Error |
✔️ 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-source
和 runtime
配置属性。 对于该 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 |
布尔值 (true , false ) |
Example
dab configure --data-source.database-type mssql
dab configure --data-source.database-type "mssql"
Runtime options
Section | Runtime Configuration | 类型 |
---|---|---|
REST | --runtime.rest.enabled |
布尔值 (true , false ) |
REST | --runtime.rest.path |
字符串 |
REST | --runtime.rest.request-body-strict |
布尔值 (true , false ) |
GraphQL | --runtime.graphql.enabled |
布尔值 (true , false ) |
GraphQL | --runtime.graphql.path |
字符串 |
GraphQL | --runtime.graphql.depth-limit |
整数 |
GraphQL | --runtime.graphql.allow-introspection |
布尔值 (true , false ) |
GraphQL | --runtime.graphql.multiple-mutations.create.enabled |
布尔值 (true , false ) |
Host | --runtime.host.mode |
枚举 |
Host | --runtime.host.cors.origins |
字符串数组 |
Host | --runtime.host.cors.allow-credentials |
布尔值 (true , false ) |
Host | --runtime.host.authentication.provider |
枚举 |
Host | --runtime.host.authentication.jwt.audience |
字符串数组 |
Host | --runtime.host.authentication.jwt.issuer |
字符串 |
Cache | --runtime.cache.enabled |
布尔值 (true , false ) |
Cache | --runtime.cache.ttl-seconds |
整数 |
Example
dab configure --runtime.rest.enabled true
dab configure --runtime.rest.enabled "true"