数据 API 生成器命令行接口参考
数据 API 生成器命令行接口 (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 | ✔️ 是 ¹ | ✔️ 是的 | 字符串 | Cosmos DB for NoSql 的数据库名称。 | |
--cosmosdb_nosql-container | ❌ 否 | ✔️ 是的 | 字符串 | Cosmos DB for NoSql 的容器名称。 | |
--graphql-schema | ✔️ 是 ¹ | ✔️ 是的 | 字符串 | 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 字段 | ✔️ 是 ¹ | ✔️ 是的 | 字符串 | 要用作表和视图的主键的一个或多个字段。 逗号分隔值。 示例 --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 | ❌ 否 | ✔️ 是的 | 字符串 | 指定两个实体之间的关系。 提供关系的名称。 | |
--基数 | ✔️ 是 ¹ | ✔️ 是的 | 字符串 | 指定两个实体之间的基数。 可以是一个或多个。 | |
--target.entity | ✔️ 是 ¹ | ✔️ 是的 | 字符串 | 源实体与之关联的另一个公开实体。 | |
--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 |
✔️ 是的 | 字符串 | 将日志记录级别指定为提供的值。 示例:调试、错误、信息等。 |
--no-https-redirect | ❌ 否 | ✔️ 是的 | - | 禁用自动 https 重定向。 | |
-c,--config | ❌ 否 | dab-config.json |
✔️ 是的 | 字符串 | 配置文件的路径。 |
注意
不能同时使用 --verbose
和 --LogLevel
。 有关不同日志记录级别的详细信息,请参阅 .NET 日志级别。
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 |
|
字符串 | ✅ | 指 Cosmos DB for NoSql 的数据库名称。 |
数据源。 options.container |
|
字符串 | ✅ | 指 Cosmos DB for NoSql 的容器名称。 |
数据源。 options.schema |
|
字符串 | ✅ | 提供 Cosmos DB for NoSql 的架构路径。 |
数据源。 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 缓存的全局默认生存时间(以秒为单位)。 |