数据 API 生成器命令行接口参考

数据 API 生成器命令行接口 (CLI) (dab CLIdab) 是一种命令行工具,可简化使用数据 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 ✔️ 是的 ✔️ 是的 字符串 要连接的数据库的类型。 支持的值:mssqlcosmosdb_nosqlcosmosdb_postgresqlmysqlpostgresql
--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 ✔️ 是的 字符串 数据库对象的类型。 支持的值:tableviewstored-procedure
--source.params ❌ 否 ✔️ 是,如果 proc 具有参数 字符串 存储过程参数及其数据类型的字典。 支持的数据类型为 stringnumberboolean。 参数采用以下格式指定: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 操作。 支持的值: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 ❌ 否 ✔️ 是的 字符串 指定两个实体之间的关系。 提供关系的名称。
--基数 ✔️ 是 ¹ ✔️ 是的 字符串 指定两个实体之间的基数。 可以是一个或多个。
--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 ❌ 否 DebughostMode=developmentError ✔️ 是的 字符串 将日志记录级别指定为提供的值。 示例:调试、错误、信息等。
--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
--data-source.database-type 字符串:MSSQLPostgreSQLCosmosDB_NoSQLMySQL 此值指示数据库类型。
数据源。
connection-string
--data-source.connection-string 字符串 指数据源的连接字符串。
数据源。
options.database
--data-source.options.database 字符串 指 Cosmos DB for NoSql 的数据库名称。
数据源。
options.container
--data-source.options.container 字符串 指 Cosmos DB for NoSql 的容器名称。
数据源。
options.schema
--data-source.options.schema 字符串 提供 Cosmos DB for NoSql 的架构路径。
数据源。
options.set-session-context
--data-source.options.set-session-context 布尔值:truefalse(默认值:true 是否启用会话上下文。
运行。
rest.enabled
--runtime.rest.enabled 布尔值:truefalse(默认值:true 指示是否启用 DAB 的 REST 终结点。
运行。
rest.path
--runtime.rest.path 字符串(默认值:/api 自定义 DAB 的 REST 终结点路径。 条件:前缀为“/”,无空格,无保留字符。
运行。
rest.request-body-strict
--runtime.rest.request-body-strict 布尔值:truefalse(默认值:true 允许/禁止多余的 REST 请求正文字段。
运行。
graphql.enabled
--runtime.graphql.enabled 布尔值:truefalse(默认值:true 启用/禁用 DAB 的 GraphQL 终结点。
运行。
graphql.path
--runtime.graphql.path 字符串(默认值:/graphql 自定义 DAB 的 GraphQL 终结点路径。 条件:前缀为“/”,无空格,无保留字符。
运行。
graphql.depth-limit
--runtime.graphql.depth-limit 整数 这指的是 graphQL 嵌套查询的最大允许深度。 允许的值:(0,2147483647] 含)。 默认值为无穷大。 使用 -1 删除限制。
运行。
graphql.allow-introspection
--runtime.graphql.allow-introspection 布尔值:truefalse(默认值:true 允许/拒绝 GraphQL 架构中的 GraphQL 反省请求。
运行。
graphql.multiple-mutations.create.enabled
--runtime.graphql.multiple-mutations.create.enabled 布尔值:truefalse(默认值:true 对 DAB 生成的 GraphQL 架构启用/禁用多突变创建操作。
运行。
host.mode
--runtime.host.mode 字符串:DevelopmentProduction 默认值:Development 在开发或生产中设置 DAB 的主机运行模式。
运行。
host.cors.origins
--runtime.host.cors.origins 字符串数组 使用此选项覆盖 CORS 中允许的源。 默认值:[] (空格分隔的字符串数组)。
运行。
host.cors.allow-credentials
--runtime.host.cors.allow-credentials 布尔值:truefalse(默认值:false 在 --host.cors.allow-credentials 中设置 Access-Control Allow-Credentials 标头的值。
运行。
host.authentication.provider
--runtime.host.authentication.provider 字符串:StaticWebAppsAppServiceAzureADJwt 配置身份验证提供程序的名称。 默认值:StaticWebApps
运行。
host.authentication.jwt.audience
--runtime.host.authentication.jwt.audience 字符串数组 使用此令牌配置 Jwt 令牌的预期接收方。
运行。
host.authentication.jwt.issuer
--runtime.host.authentication.jwt.issuer 字符串 这是指颁发 Jwt 令牌的实体。
运行。
cache.enabled
--runtime.cache.enabled 布尔值:truefalse(默认值:false 全局启用/禁用 DAB 的缓存。 (还必须单独启用每个实体的缓存。
运行。
cache.ttl-seconds
--runtime.cache.ttl-seconds 整数(默认值:5 自定义 DAB 缓存的全局默认生存时间(以秒为单位)。