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.

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).
--fields.name Nombres de campo que se describen (repetibles o separados por comas).
--fields.alias Alias de campo (separados por comas, alineados con --fields.name).
--fields.description Descripciones de campo (separadas por comas, alineadas con --fields.name).
--fields.primary-key Marcas de clave principales (separadas por comas, alineadas con --fields.name).
--graphql Exposición de GraphQL: false, true, singularo singular:plural.
--graphql.operation Solo procedimientos almacenados. Query o Mutation (mutación predeterminada).
--permissions Obligatorio. role:actions para un solo rol.
--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.
--parameters.name Solo procedimientos almacenados. Nombres de parámetro (separados por comas).
--parameters.description Solo procedimientos almacenados. Descripciones de parámetros.
--parameters.required Solo procedimientos almacenados. Marcas necesarias para parámetros.
--parameters.default Solo procedimientos almacenados. Valores predeterminados del parámetro.
--rest Exposición de REST: false, trueo ruta personalizada.
--rest.methods Solo procedimientos almacenados. Verbos permitidos: GET, POST, PUT, PATCH, DELETE. POST predeterminado.
-s, --source Obligatorio. Nombre del objeto de base de datos (tabla, vista o procedimiento almacenado).
--source.key-fields Los campos que se van a usar como claves principales.
--source.params Solo procedimientos almacenados. Valores de parámetro predeterminados.
--source.type Tipo de origen: table, view, stored-procedure (tabla predeterminada).
--help Muestra esta pantalla de ayuda.
--version Mostrar información de versión.

<entity-name>

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

Ejemplos rápidos de tablas, vistas y procedimientos almacenados

Agregar una tabla

dab add Book \
  --source dbo.Books \
  --source.type table \
  --permissions "anonymous:read" \
  --description "Example for managing book inventory"

Agregar una vista

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"

Adición de un procedimiento almacenado

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

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": [ { "action": "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": [ { "action": "read" } ] }
      ],
      "cache": {
        "enabled": false,
        "ttl-seconds": 300
      }
    }
  }
}

--description

Descripción de texto libre de la entidad.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con dotnet tool install microsoft.dataapibuilder --prerelease.

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": [ { "action": "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": [
            {
              "action": "read",
              "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": [
            {
              "action": "read",
              "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": [ { "action": "read" } ] }
      ],
      "graphql": {
        "enabled": true,
        "type": {
          "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": [ { "action": "execute" } ] }
      ],
      "graphql": {
        "enabled": true,
        "operation": "query"
      }
    }
  }
}

--permissions

Define pares role→actions.

--permissions no se puede repetir. Para agregar más roles, ejecute dab add con un rol y, a continuación, ejecute dab update para roles adicionales.

Example

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

dab update Book \
  --permissions "authenticated:create,read,update,delete"

--parameters.name

Solo procedimientos almacenados. Lista separada por comas de nombres de parámetros.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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"

Configuración resultante

{
  "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

Solo procedimientos almacenados. Lista separada por comas de descripciones de parámetros alineadas con --parameters.name.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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

Solo procedimientos almacenados. Lista separada por comas de true/false valores alineados con .--parameters.name

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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

Solo procedimientos almacenados. Lista separada por comas de valores predeterminados alineados con --parameters.name.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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

Nombre de la columna de base de datos que se va a describir.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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"

Configuración resultante

{
  "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

Alias para el campo. Use una lista separada por comas alineada con --fields.name.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.alias "product_id"

--fields.description

Descripción del campo. Use una lista separada por comas alineada con --fields.name.

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con 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

Marca de clave principal para el campo. Use una lista separada por comas de true/false valores alineados con .--fields.name

Nota:

Esta opción solo está disponible en la CLI de versión preliminar v1.7 (actualmente RC). Instale con dotnet tool install microsoft.dataapibuilder --prerelease.

Example

dab add Products \
  --source dbo.Products \
  --permissions "anonymous:*" \
  --fields.name "ProductID" \
  --fields.primary-key "true"

Configuración resultante

{
  "entities": {
    "Products": {
      "source": { "type": "table", "object": "dbo.Products" },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "*" } ] }
      ],
      "fields": [
        {
          "name": "ProductID",
          "primary-key": true
        }
      ]
    }
  }
}

--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": [
            {
              "action": "read",
              "policy": {
                "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": [
            {
              "action": "read",
              "policy": {
                "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": [ { "action": "read" } ] }
      ],
      "rest": {
        "enabled": true,
        "path": "/BooksApi"
      }
    }
  }
}

--rest.methods

Solo procedimientos almacenados. Verbos HTTP permitidos para la ejecución: GET, POST, PUT, PATCH, DELETE. 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": [ { "action": "execute" } ] }
      ],
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

-s, --source

Obligatorio. Nombre del objeto de base de datos: tabla, vista, contenedor 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": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.key-fields

Los campos que se van a usar como claves principales. Necesario para las vistas cuando se generan a través de la CLI.

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",
        "key-fields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

--source.params

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

Nota:

En la CLI de versión preliminar v1.7 (actualmente RC), --source.params está en desuso. En su lugar, use --parameters.namelas opciones relacionadas --parameters.* , --parameters.defaulty .

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",
        "parameters": [
          {
            "name": "year",
            "required": false,
            "default": "2024"
          },
          {
            "name": "active",
            "required": false,
            "default": "True"
          }
        ]
      },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ]
    }
  }
}

--help

Muestra esta pantalla de ayuda.

Example

dab add \
  --help

--version

Mostrar información de versión.

Example

dab add \
  --version

--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": [ { "action": "read" } ] }
      ]
    }
  }
}