将新的实体定义添加到现有的数据 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 |
逗号分隔的允许字段(* = 全部)。 |
--graphql |
GraphQL 曝光: false、 true、 singular或 singular:plural。 |
--graphql.operation |
仅存储过程。
query 或 mutation (默认突变)。 |
--permissions |
必填。 一对或多 role:actions 对。 重复。 |
--policy-database |
在 DB 查询中应用的 OData 样式筛选器。 |
--policy-request |
在数据库调用之前评估的请求策略。 |
--rest |
REST 曝光: false、 true或自定义路由。 |
--rest.methods |
仅存储过程。 允许的 HTTP 谓词。 默认 POST。 |
-s, --source |
必填。 数据库对象名称(表、视图或存储过程)。 |
--source.key-fields |
视图或 PK 未推断时是必需的。 不允许使用 procs。 |
--source.params |
仅存储过程。 默认参数值。 |
--source.type |
源类型:table、、 stored-procedureview(默认表)。 |
<entity-name>
配置中实体的逻辑名称。区分大小写。
Example
dab add Book --source dbo.Books --permissions "anonymous:read"
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{
"role": "anonymous",
"actions": [ "read" ]
}
]
}
}
}
-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": [ "read" ] }
],
"cache": {
"enabled": true
}
}
}
}
--cache.ttl
缓存生存时间(以秒为单位)。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --cache.ttl 300
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"cache": {
"ttl-seconds": 300
}
}
}
}
--description
实体的自由文本说明。
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": [ "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": [ "read" ] }
],
"graphql": {
"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": [ "read" ] }
],
"graphql": {
"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": [ "read" ] }
],
"graphql": {
"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": [ "execute" ] }
],
"graphql": {
"operation": "query"
}
}
}
}
--permissions
定义角色→作对。 对多个角色使用重复标志。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] },
{ "role": "authenticated", "actions": [ "create", "read", "update", "delete" ] }
]
}
}
}
--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": [ "read" ] }
],
"policies": {
"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": [ "read" ] }
],
"policies": {
"request": "@claims.role == 'admin'"
}
}
}
}
--rest
控制 REST 曝光。
Example
dab add Book --source dbo.Books --permissions "anonymous:read" --rest BooksApi
生成的配置
{
"entities": {
"Book": {
"source": { "type": "table", "object": "dbo.Books" },
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
],
"rest": {
"path": "BooksApi"
}
}
}
}
--rest.methods
仅存储过程。 允许执行的 HTTP 谓词。 默认为 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": [ "execute" ] }
],
"rest": {
"path": "BookProc",
"methods": [ "GET", "POST" ]
}
}
}
}
-s, --source
必填。 数据库对象的名称:表、视图或存储过程。
Example
dab add Book --source dbo.Books --permissions "anonymous:read"
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
--source.key-fields
对于视图必需。 对于没有可推断 PK 的表也是必需的。 不允许使用存储过程。
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",
"keyFields": [ "id", "region" ]
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
--source.params
仅存储过程。 逗号分隔 name:value 对。 不允许表或视图。
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",
"params": {
"year": 2024,
"active": true
}
},
"permissions": [
{ "role": "admin", "actions": [ "execute" ] }
]
}
}
}
--source.type
数据库对象的类型。 默认值:table。
Example
dab add Book --source dbo.Books --source.type table --permissions "anonymous:read"
生成的配置
{
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.Books"
},
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}