Compartir a través de


Comando add

Agregue una nueva definición de entidad a un archivo de configuración de Data API Builder existente. Ya debe tener una configuración creada con dab init. Use dab update para modificar las entidades después de la creación.

Sugerencia

Use dab add para crear nuevas entidades y dab update para evolucionarlas. La reasignación de nombres de campo (--map) solo está disponible en update, no en add.

Syntax

dab add <entity-name> [options]

Vista rápida

Opción Resumen
<entity-name> Argumento posicional requerido. Nombre de entidad lógica.
-c, --config Ruta de acceso del archivo de configuración. El valor predeterminado es dab-config.json.
--cache.enabled Habilite o deshabilite el almacenamiento en caché para la entidad.
--cache.ttl Tiempo de vida en caché en segundos.
--description Descripción de forma libre para la entidad.
--fields.exclude Campos excluidos separados por comas.
--fields.include Campos permitidos separados por comas (* = todos).
--graphql Exposición de GraphQL: false, true, singularo singular:plural.
--graphql.operation Solo procedimientos almacenados. query o mutation (mutación predeterminada).
--permissions Obligatorio. Uno o más role:actions pares. Repetible.
--policy-database Filtro de estilo OData aplicado en la consulta de base de datos.
--policy-request Directiva de solicitud evaluada antes de la llamada de base de datos.
--rest Exposición de REST: false, trueo ruta personalizada.
--rest.methods Solo procedimientos almacenados. Verbos HTTP permitidos. POST predeterminado.
-s, --source Obligatorio. Nombre del objeto de base de datos (tabla, vista o procedimiento almacenado).
--source.key-fields Necesario para las vistas o cuando PK no se deduce. No se permite para los procedimientos.
--source.params Solo procedimientos almacenados. Valores de parámetro predeterminados.
--source.type Tipo de origen: table, view, stored-procedure (tabla predeterminada).

<entity-name>

Nombre lógico de la entidad en la configuración. Distingue mayúsculas de minúsculas.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "read" ]
        }
      ]
    }
  }
}

-c, --config

Ruta de acceso del archivo de configuración. El valor predeterminado es dab-config.json.

Example

dab add Book --config ./dab-config.mssql.json --source dbo.Books --permissions "anonymous:read"

--cache.enabled

Habilite o deshabilite el almacenamiento en caché.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.enabled true

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

Tiempo de vida en caché en segundos.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.ttl 300

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "ttl-seconds": 300
      }
    }
  }
}

--description

Descripción de texto libre de la entidad.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --description "Entity for managing book inventory"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--fields.exclude

Lista separada por comas de campos que se van a excluir.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.exclude "internal_flag,secret_note"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "exclude": [ "internal_flag", "secret_note" ]
        }
      }
    }
  }
}

--fields.include

Lista separada por comas de campos que se van a exponer.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.include "id,title,price"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "include": [ "id", "title", "price" ]
        }
      }
    }
  }
}

--graphql

Controlar la exposición de GraphQL.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --graphql book:books

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "singular": "book",
        "plural": "books"
      }
    }
  }
}

--graphql.operation

Solo procedimientos almacenados. Tipo de operación GraphQL. El valor predeterminado es mutation.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --graphql.operation query

Configuración resultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "graphql": {
        "operation": "query"
      }
    }
  }
}

--permissions

Define pares role→actions. Use marcas repetidas para varios roles.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] },
        { "role": "authenticated", "actions": [ "create", "read", "update", "delete" ] }
      ]
    }
  }
}

--policy-database

Directiva de nivel de base de datos.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-database "region eq 'US'"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "database": "region eq 'US'"
      }
    }
  }
}

--policy-request

Directiva de nivel de solicitud.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-request "@claims.role == 'admin'"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "request": "@claims.role == 'admin'"
      }
    }
  }
}

--rest

Controlar la exposición de REST.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --rest BooksApi

Configuración resultante

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "rest": {
        "path": "BooksApi"
      }
    }
  }
}

--rest.methods

Solo procedimientos almacenados. Verbos HTTP permitidos para la ejecución. El valor predeterminado es POST. Se omite para las tablas o vistas.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --rest true --rest.methods GET,POST

Configuración resultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "rest": {
        "path": "BookProc",
        "methods": [ "GET", "POST" ]
      }
    }
  }
}

-s, --source

Obligatorio. Nombre del objeto de base de datos: tabla, vista o procedimiento almacenado.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.key-fields

Necesario para vistas. También es necesario para las tablas sin una PK inferible. No se permite para los procedimientos almacenados.

Example

dab add BookView --source dbo.MyView --source.type view --source.key-fields "id,region" --permissions "anonymous:read"

Configuración resultante

{
  "entities": {
    "BookView": {
      "source": {
        "type": "view",
        "object": "dbo.MyView",
        "keyFields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.params

Solo procedimientos almacenados. Pares separados por comas name:value . No se permite para tablas o vistas.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --source.params "year:2024,active:true" --permissions "admin:execute"

Configuración resultante

{
  "entities": {
    "BookProc": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.MyProc",
        "params": {
          "year": 2024,
          "active": true
        }
      },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ]
    }
  }
}

--source.type

Tipo de objeto de base de datos. Predeterminado: table.

Example

dab add Book --source dbo.Books --source.type table --permissions "anonymous:read"

Configuración resultante

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}