将新的实体定义添加到现有的数据 API 生成器配置文件。 必须已创建 dab init配置。 用于 dab update 在创建后修改实体。
小窍门
用于 dab add 创建新实体并 dab update 对其进行改进。
Syntax
dab add <entity-name> [options]
快速浏览
| 选项 | 概要 |
|---|---|
<entity-name> |
必需的位置参数。 逻辑实体名称。 |
-c, --config |
配置文件路径。 默认 dab-config.json。 |
--cache.enabled |
为实体启用/禁用缓存。 |
--cache.ttl |
缓存生存时间(以秒为单位)。 |
--description |
实体的自由格式说明。 |
--fields.exclude |
逗号分隔的排除字段。 |
--fields.include |
逗号分隔的允许字段(* = 全部)。 |
--fields.name |
要描述的字段名称(可重复或逗号分隔)。 |
--fields.alias |
字段别名(逗号分隔,与 --fields.name右对齐)。 |
--fields.description |
字段说明(逗号分隔,对齐)。--fields.name |
--fields.primary-key |
主键标志(逗号分隔,对齐)。--fields.name |
--graphql |
GraphQL 曝光: false、 true、 singular或 singular:plural。 |
--graphql.operation |
仅存储过程。
Query 或 Mutation (默认突变)。 |
--permissions |
必填。
role:actions 对于单个角色。 |
--policy-database |
在 DB 查询中应用的 OData 样式筛选器。 |
--policy-request |
在数据库调用之前评估的请求策略。 |
--parameters.name |
仅存储过程。 参数名称(逗号分隔)。 |
--parameters.description |
仅存储过程。 参数说明。 |
--parameters.required |
仅存储过程。 参数所需的标志。 |
--parameters.default |
仅存储过程。 参数默认值。 |
--rest |
REST 曝光: false、 true或自定义路由。 |
--rest.methods |
仅存储过程。 允许的谓词:GET、、PUTPOST、PATCHDELETE。 默认 POST。 |
-s, --source |
必填。 数据库对象名称(表、视图或存储过程)。 |
--source.key-fields |
要用作主键的字段。 |
--source.params |
仅存储过程。 默认参数值。 |
--source.type |
源类型:table、、 viewstored-procedure(默认表)。 |
--help |
显示此帮助屏幕。 |
--version |
显示版本信息。 |
<entity-name>
配置中实体的逻辑名称。区分大小写。
表、视图和存储过程的快速示例
添加表格
dab add Book \
--source dbo.Books \
--source.type table \
--permissions "anonymous:read" \
--description "Example for managing book inventory"
添加视图
dab add BookView \
--source dbo.MyView \
--source.type view \
--source.key-fields "id,region" \
--permissions "anonymous:read" \
--description "Example for managing book inventory from view"
添加存储过程
dab add BookProc \
--source dbo.MyProc \
--source.type stored-procedure \
--source.params "year:2024,active:true" \
--permissions "anonymous:execute" \
--graphql.operation query \
--description "Example for executing a stored procedure"
-c, --config
配置文件路径。 默认值为 dab-config.json。
Example
dab add Book \
--config ./dab-config.mssql.json \
--source dbo.Books \
--permissions "anonymous:read"
--cache.enabled
启用或禁用缓存。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--cache.enabled true
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
],
"cache": {
"enabled": true
}
}
}
}
--cache.ttl
缓存生存时间(以秒为单位)。
Example
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
],
"cache": {
"enabled": false,
"ttl-seconds": 300
}
}
}
}
--description
实体的自由文本说明。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--description "Entity for managing book inventory"
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
],
"description": "Entity for managing book inventory"
}
}
}
--fields.exclude
要排除的字段的逗号分隔列表。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--fields.exclude "internal_flag,secret_note"
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": {
"exclude": [ "internal_flag", "secret_note" ]
}
}
]
}
]
}
}
}
--fields.include
要公开的字段的逗号分隔列表。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--fields.include "id,title,price"
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": {
"include": [ "id", "title", "price" ]
}
}
]
}
]
}
}
}
--graphql
控制 GraphQL 公开。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--graphql book:books
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
],
"graphql": {
"enabled": true,
"type": {
"singular": "book",
"plural": "books"
}
}
}
}
}
--graphql.operation
仅存储过程。 GraphQL作类型。 默认值为 mutation。
Example
dab add BookProc \
--source dbo.MyProc \
--source.type stored-procedure \
--permissions "admin:execute" \
--graphql.operation Query
生成的配置
{
"entities": {
"BookProc": {
"source": { "type": "stored-procedure", "object": "dbo.MyProc" },
"permissions": [
{ "role": "admin", "actions": [ { "action": "execute" } ] }
],
"graphql": {
"enabled": true,
"operation": "query"
}
}
}
}
--permissions
定义角色→作对。
--permissions 不可重复。 若要添加更多角色,请使用一个角色运行 dab add ,然后针对其他角色运行 dab update 。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read"
dab update Book \
--permissions "authenticated:create,read,update,delete"
--parameters.name
仅存储过程。 参数名称的逗号分隔列表。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add GetOrdersByDateRange \
--source dbo.usp_GetOrdersByDateRange \
--source.type stored-procedure \
--permissions "authenticated:execute" \
--description "Retrieves all orders placed within a specified date range" \
--parameters.name "StartDate,EndDate,CustomerID" \
--parameters.description "Beginning of date range (inclusive),End of date range (inclusive),Optional customer ID filter" \
--parameters.required "true,true,false" \
--parameters.default ",,null"
生成的配置
{
"entities": {
"GetOrdersByDateRange": {
"description": "Retrieves all orders placed within a specified date range",
"source": {
"object": "dbo.usp_GetOrdersByDateRange",
"type": "stored-procedure",
"parameters": [
{
"name": "StartDate",
"required": true,
"description": "Beginning of date range (inclusive)"
},
{
"name": "EndDate",
"required": true,
"description": "End of date range (inclusive)"
},
{
"name": "CustomerID",
"required": false,
"default": "null",
"description": "Optional customer ID filter"
}
]
},
"permissions": [
{
"role": "authenticated",
"actions": [
{
"action": "execute"
}
]
}
]
}
}
}
--parameters.description
仅存储过程。 参数说明的逗号分隔列表与 --parameters.name.
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add GetOrdersByDateRange \
--source dbo.usp_GetOrdersByDateRange \
--source.type stored-procedure \
--permissions "authenticated:execute" \
--parameters.name "StartDate,EndDate" \
--parameters.description "Beginning of date range (inclusive),End of date range (inclusive)"
--parameters.required
仅存储过程。 以逗号分隔的值列表 true/false 对齐 --parameters.name。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add GetOrdersByDateRange \
--source dbo.usp_GetOrdersByDateRange \
--source.type stored-procedure \
--permissions "authenticated:execute" \
--parameters.name "StartDate,EndDate" \
--parameters.required "true,true"
--parameters.default
仅存储过程。 默认值的逗号分隔列表与 --parameters.name。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add GetOrdersByDateRange \
--source dbo.usp_GetOrdersByDateRange \
--source.type stored-procedure \
--permissions "authenticated:execute" \
--parameters.name "CustomerID" \
--parameters.default "null"
--fields.name
要描述的数据库列的名称。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add Products \
--source dbo.Products \
--permissions "anonymous:*" \
--fields.name "ProductID,ProductName" \
--fields.alias "product_id,product_name" \
--fields.description "Unique identifier for each product,Display name of the product" \
--fields.primary-key "true,false"
生成的配置
{
"entities": {
"Products": {
"source": { "type": "table", "object": "dbo.Products" },
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "*" } ] }
],
"fields": [
{
"name": "ProductID",
"alias": "product_id",
"description": "Unique identifier for each product",
"primary-key": true
},
{
"name": "ProductName",
"alias": "product_name",
"description": "Display name of the product",
"primary-key": false
}
]
}
}
}
--fields.alias
字段的别名。 使用一个逗号分隔的列表,该列表与 --fields.name.
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add Products \
--source dbo.Products \
--permissions "anonymous:*" \
--fields.name "ProductID" \
--fields.alias "product_id"
--fields.description
字段的说明。 使用一个逗号分隔的列表,该列表与 --fields.name.
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add Products \
--source dbo.Products \
--permissions "anonymous:*" \
--fields.name "ProductID" \
--fields.description "Unique identifier"
--fields.primary-key
字段的主键标志。 使用以逗号分隔的值 true/false 列表, --fields.name该列表与值对齐。
注释
此选项仅在 v1.7 预发行版 CLI(当前 RC)中可用。 使用 dotnet tool install microsoft.dataapibuilder --prerelease. 安装 。
Example
dab add Products \
--source dbo.Products \
--permissions "anonymous:*" \
--fields.name "ProductID" \
--fields.primary-key "true"
生成的配置
{
"entities": {
"Products": {
"source": { "type": "table", "object": "dbo.Products" },
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "*" } ] }
],
"fields": [
{
"name": "ProductID",
"primary-key": true
}
]
}
}
}
--policy-database
数据库级策略。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--policy-database "region eq 'US'"
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"policy": {
"database": "region eq 'US'"
}
}
]
}
]
}
}
}
--policy-request
请求级策略。
Example
dab add Book \
--source dbo.Books \
--permissions "anonymous:read" \
--policy-request "@claims.role == 'admin'"
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"policy": {
"request": "@claims.role == 'admin'"
}
}
]
}
]
}
}
}
--rest
控制 REST 曝光。
Example
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
],
"rest": {
"enabled": true,
"path": "/BooksApi"
}
}
}
}
--rest.methods
仅存储过程。 允许执行的 HTTP 谓词:GET、、POSTPUT、PATCHDELETE。 默认为 POST。 对于表/视图忽略。
Example
dab add BookProc \
--source dbo.MyProc \
--source.type stored-procedure \
--permissions "admin:execute" \
--rest true \
--rest.methods GET,POST
生成的配置
{
"entities": {
"BookProc": {
"source": { "type": "stored-procedure", "object": "dbo.MyProc" },
"permissions": [
{ "role": "admin", "actions": [ { "action": "execute" } ] }
],
"rest": {
"enabled": true,
"methods": [ "get", "post" ]
}
}
}
}
-s, --source
必填。 数据库对象的名称:表、视图、容器或存储过程。
Example
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
--source.key-fields
要用作主键的字段。 通过 CLI 生成视图时需要这些视图。
Example
dab add BookView \
--source dbo.MyView \
--source.type view \
--source.key-fields "id,region" \
--permissions "anonymous:read"
生成的配置
{
"entities": {
"BookView": {
"source": {
"type": "view",
"object": "dbo.MyView",
"key-fields": [ "id", "region" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
--source.params
仅存储过程。 逗号分隔 name:value 对。 不允许表或视图。
注释
在 v1.7 预发行版 CLI(当前 RC) --source.params 中,已弃用。 请改用--parameters.name相关--parameters.default--parameters.*选项。
Example
dab add BookProc \
--source dbo.MyProc \
--source.type stored-procedure \
--source.params "year:2024,active:true" \
--permissions "admin:execute"
生成的配置
{
"entities": {
"BookProc": {
"source": {
"type": "stored-procedure",
"object": "dbo.MyProc",
"parameters": [
{
"name": "year",
"required": false,
"default": "2024"
},
{
"name": "active",
"required": false,
"default": "True"
}
]
},
"permissions": [
{ "role": "admin", "actions": [ { "action": "execute" } ] }
]
}
}
}
--help
显示此帮助屏幕。
Example
--version
显示版本信息。
Example
--source.type
数据库对象的类型。 默认值:table。
Example
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}