Condividi tramite


add comando

Aggiungere una nuova definizione di entità a un file di configurazione di Generatore API dati esistente. È necessario avere già una configurazione creata con dab init. Usare dab update per modificare le entità dopo la creazione.

Suggerimento

Usare dab add per creare nuove entità e dab update per evolverle.

Sintassi

dab add <entity-name> [options]

Sguardo rapido

Opzione Riassunto
<entity-name> Argomento posizionale obbligatorio. Nome dell'entità logica.
-c, --config Percorso del file di configurazione. Valore predefinito dab-config.json.
--cache.enabled Abilitare/disabilitare la memorizzazione nella cache per l'entità.
--cache.ttl Tempo di memorizzazione nella cache in secondi.
--description Descrizione in formato libero per l'entità.
--fields.exclude Campi esclusi delimitati da virgole.
--fields.include Campi consentiti delimitati da virgole (* = all).
--fields.name Nomi di campo da descrivere (ripetibili o delimitati da virgole).
--fields.alias Alias di campo (delimitati da virgole, allineati a --fields.name).
--fields.description Descrizioni dei campi (delimitate da virgole, allineate a --fields.name).
--fields.primary-key Flag di chiave primaria (delimitati da virgole, allineati a --fields.name).
--graphql Esposizione graphQL: false, true, singularo singular:plural.
--graphql.operation Solo stored procedure. Query o Mutation (mutazione predefinita).
--permissions Obbligatorio. role:actions per un singolo ruolo.
--policy-database Filtro in stile OData applicato nella query di database.
--policy-request Criteri di richiesta valutati prima della chiamata al database.
--parameters.name Solo stored procedure. Nomi di parametro (delimitati da virgole).
--parameters.description Solo stored procedure. Descrizioni dei parametri.
--parameters.required Solo stored procedure. Flag obbligatori dei parametri.
--parameters.default Solo stored procedure. Valori predefiniti dei parametri.
--rest Esposizione REST: false, trueo route personalizzata.
--rest.methods Solo stored procedure. Verbi consentiti: GET, POST, PATCHPUT, , DELETE. POST predefinito.
-s, --source Obbligatorio. Nome dell'oggetto di database (tabella, vista o stored procedure).
--source.key-fields Campi da usare come chiavi primarie.
--source.params Solo stored procedure. Valori dei parametri predefiniti.
--source.type Tipo di origine: table, view, stored-procedure (tabella predefinita).
--help Visualizza questa schermata della Guida.
--version Visualizzare le informazioni sulla versione.

<entity-name>

Nome logico dell'entità nella configurazione. Distinzione tra maiuscole e minuscole.

Esempi rapidi per tabelle, viste e stored procedure

Aggiungere una tabella

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

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

Aggiungere una stored procedure

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

Percorso del file di configurazione. Il valore predefinito è dab-config.json.

Example

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

--cache.enabled

Abilitare o disabilitare la memorizzazione nella cache.

Example

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

Configurazione risultante

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

--cache.ttl

Tempo di memorizzazione nella cache in secondi.

Example

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

Configurazione risultante

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

--description

Descrizione in formato libero dell'entità.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configurazione risultante

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

--fields.exclude

Elenco delimitato da virgole di campi da escludere.

Example

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

Configurazione risultante

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

--fields.include

Elenco delimitato da virgole di campi da esporre.

Example

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

Configurazione risultante

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

--graphql

Controllare l'esposizione di GraphQL.

Example

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

Configurazione risultante

{
  "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 stored procedure. Tipo di operazione GraphQL. Il valore predefinito è mutation.

Example

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

Configurazione risultante

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

--permissions

Definisce le coppie role→actions.

--permissions non è ripetibile. Per aggiungere altri ruoli, eseguire dab add con un ruolo e quindi eseguire dab update per altri ruoli.

Example

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

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

--parameters.name

Solo stored procedure. Elenco delimitato da virgole di nomi di parametri.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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"

Configurazione risultante

{
  "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 stored procedure. Elenco delimitato da virgole delle descrizioni dei parametri allineate a --parameters.name.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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 stored procedure. Elenco delimitato da virgole di true/false valori allineati a .--parameters.name

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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 stored procedure. Elenco delimitato da virgole di valori predefiniti allineati a --parameters.name.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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

Nome della colonna del database da descrivere.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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"

Configurazione risultante

{
  "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 per il campo. Usare un elenco delimitato da virgole allineato a --fields.name.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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

Descrizione per il campo. Usare un elenco delimitato da virgole allineato a --fields.name.

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione 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

Flag di chiave primaria per il campo. Usare un elenco delimitato da virgole di true/false valori allineati a .--fields.name

Annotazioni

Questa opzione è disponibile solo nell'interfaccia della riga di comando non definitiva v1.7 (attualmente RC). Eseguire l'installazione con dotnet tool install microsoft.dataapibuilder --prerelease.

Example

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

Configurazione risultante

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

--policy-database

Criteri a livello di database.

Example

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

Configurazione risultante

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

--policy-request

Criteri a livello di richiesta.

Example

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

Configurazione risultante

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

--rest

Controllare l'esposizione REST.

Example

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

Configurazione risultante

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

--rest.methods

Solo stored procedure. Verbi HTTP consentiti per l'esecuzione: GET, POST, PUT, PATCH, DELETE. Il valore predefinito è POST. Ignorato per tabelle/viste.

Example

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

Configurazione risultante

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ { "action": "execute" } ] }
      ],
      "rest": {
        "enabled": true,
        "methods": [ "get", "post" ]
      }
    }
  }
}

-s, --source

Obbligatorio. Nome dell'oggetto di database: tabella, vista, contenitore o stored procedure.

Example

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

Configurazione risultante

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

--source.key-fields

Campi da usare come chiavi primarie. Obbligatorio per le visualizzazioni quando generato tramite l'interfaccia della riga di comando.

Example

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

Configurazione risultante

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

--source.params

Solo stored procedure. Coppie delimitate da name:value virgole. Non consentito per tabelle o viste.

Annotazioni

Nell'interfaccia della riga di comando versione 1.7 (attualmente RC) --source.params è deprecata. Usare --parameters.nameinvece le opzioni correlate , --parameters.defaulte --parameters.* .

Example

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

Configurazione risultante

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

Visualizza questa schermata della Guida.

Example

dab add \
  --help

--version

Visualizzare le informazioni sulla versione.

Example

dab add \
  --version

--source.type

Tipo di oggetto di database. Impostazione predefinita: table.

Example

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

Configurazione risultante

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