Informazioni di riferimento sulle interfacce della riga di comando di Generatore API dati
L'interfaccia della riga di comando di Data API Builder (CLI) (interfaccia della riga di comando di dab o dab
) è uno strumento da riga di comando che semplifica l'esperienza di sviluppo locale per le applicazioni che usano Generatore API dati.
Mancia
L'interfaccia della riga di comando di Data API Builder include un sistema di guida integrato. Per ottenere un elenco dei comandi disponibili, usare l'opzione --help
nel comando dab
.
dab --help
Per ottenere informazioni su un comando specifico, usare l'opzione --help
. Ad esempio, per altre informazioni sul comando init
:
dab init --help
Verbi e opzioni della riga di comando
init
Inizializza la configurazione di runtime per il motore di runtime di Generatore API dati. Crea un nuovo file JSON con le proprietà fornite come opzioni.
Sintassi
dab init [options]
Esempi
dab init --config "dab-config.mssql.json" --database-type mssql --connection-string "@env('SQL_CONNECTION_STRING')"
dab init --database-type mysql --connection-string "@env('MYSQL_CONNECTION_STRING')" --graphql.multiple-create.enabled true
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
--database-type | ✔️ Sì | ✔️ Sì | corda | Tipo di database da connettere. Valori supportati: mssql , cosmosdb_nosql , cosmosdb_postgresql , mysql , postgresql . |
|
--connection-string | ❌ No | "" |
✔️ Sì | corda | Dettagli di connessione per la connessione al database. |
--cosmosdb_nosql-database | ✔️ Sì ¹ | ✔️ Sì | corda | Nome del database per Cosmos DB per NoSql. | |
--cosmosdb_nosql-container | ❌ No | ✔️ Sì | corda | Nome del contenitore per Cosmos DB per NoSql. | |
--graphql-schema | ✔️ Sì ¹ | ✔️ Sì | corda | Percorso schema GraphQL | |
--set-session-context | ❌ No | false |
❌ No | Abilitare l'invio di dati a MsSql usando il contesto di sessione. | |
--host-mode | ❌ No | production |
✔️ Sì | corda | Specificare la modalità Host - sviluppo o produzione |
--cors-origin | ❌ No | "" |
✔️ Sì | corda | Specificare l'elenco delle origini consentite. |
--auth.provider | ❌ No | StaticWebApps |
✔️ Sì | corda | Specificare il provider di identità. |
--rest.path | ❌ No | /api |
✔️ Sì | corda | Specificare il prefisso dell'endpoint REST. |
--rest.enabled | ❌ No | true |
✔️ Sì | booleano | Abilita l'endpoint REST per tutte le entità. |
--rest.request-body-strict | ❌ No | true |
✔️ Sì | Non consente campi estranei nel corpo della richiesta. | |
--graphql.path | ❌ No | /graphql |
✔️ Sì | corda | Specificare il prefisso dell'endpoint GraphQL. |
--graphql.enabled | ❌ No | true |
✔️ Sì | booleano | Abilita l'endpoint GraphQL per tutte le entità. |
--graphql.multiple-create.enabled | ❌ No | false |
✔️ Sì | Abilita più funzionalità di creazione in GraphQL. | |
--auth.audience | ❌ No | ✔️ Sì | corda | Identifica i destinatari a cui è destinato il token Json Web (JWT). | |
--auth.issuer | ❌ No | ✔️ Sì | corda | Specificare l'entità che ha emesso il token JWT. | |
-c,--config | ❌ No | dab-config.json |
✔️ Sì | corda | Percorso del file di configurazione. |
¹ Questa opzione è necessaria solo quando --database-type
è impostato su cosmosdb_nosql
.
add
Aggiungere una nuova entità di database al file di configurazione. Assicurarsi di avere già un file di configurazione prima di eseguire questo comando. In caso contrario, viene restituito un errore.
Sintassi
dab add [entity-name] [options]
Esempi
dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
-s,--source | ✔️ Sì | ✔️ Sì | corda | Nome della tabella o del contenitore di origine. | |
--permissions | ✔️ Sì | ✔️ Sì | corda | Autorizzazioni necessarie per accedere alla tabella o al contenitore di origine. Formato: [role]:[actions] . |
|
--source.type | ❌ No | table |
✔️ Sì | corda | Tipo dell'oggetto di database. Valori supportati: table , view , stored-procedure . |
--source.params | ❌ No | ✔️ Sì, se proc ha parametri | corda | Dizionario dei parametri della stored procedure e dei relativi tipi di dati. I tipi di dati supportati sono string , number e boolean . I parametri vengono specificati nel formato : paramName:type . Ad esempio: --source.params "id:number,isActive:boolean,name:string" . |
|
campi di |
✔️ Sì ¹ | ✔️ Sì | corda | Uno o più campi da usare come chiavi primarie solo per tabelle e viste. Valori delimitati da virgole. Esempio --source.key-fields "id,name,type" . |
|
--rest | ❌ No | nome dell'entità con distinzione tra maiuscole e minuscole | ✔️ Sì | corda | Route per l'API REST. Esempi: --rest: false :> Disabilita le chiamate API REST per questa entità.
--rest: true :> nome dell'entità diventa il percorso rimanente.
--rest: "customPathName" :> CustomPathName fornito diventa il percorso REST. |
--rest.methods | ❌ No | post |
✔️ Sì | corda | Azioni HTTP da supportare per la stored procedure. Specificare le azioni come elenco delimitato da virgole. Le azioni HTTP valide sono:[get, post, put, patch, delete]. |
--graphql | ❌ No | nome dell'entità con distinzione tra maiuscole e minuscole | ✔️ Sì | Bool/String | Tipo di entità esposto per GraphQL. Esempi: --graphql: false :> disabilita le chiamate graphql per questa entità.
--graphql: true :> espone l'entità per GraphQL con nomi predefiniti. La forma singolare del nome dell'entità viene considerata per i nomi di query e mutazioni.
--graphql: "customQueryName" :> imposta in modo esplicito il valore singolare mentre DAB pluralizza il valore fornito per query e mutazioni.
--graphql: "singularName:pluralName" :> imposta i valori singolari e plurali (delimitati da due punti : ) usati per query e mutazioni. |
--graphql.operation | ❌ No | mutation |
✔️ Sì | corda | Operazione GraphQL da supportare per la stored procedure. Valori supportati: query , mutation . |
--fields.include | ❌ No | ✔️ Sì | corda | Campi con autorizzazione per l'accesso. | |
--fields.exclude | ❌ No | ✔️ Sì | corda | Campi esclusi dagli elenchi di azioni. | |
--policy-database | ❌ No | ✔️ Sì | corda | Specificare una regola di filtro dello stile OData inserita nella query inviata al database. | |
-c,--config | ❌ No | dab-config.json |
✔️ Sì | corda | Percorso del file di configurazione. |
¹ Questa opzione è necessaria solo quando --source.type
è impostato su view
.
update
Aggiornare le proprietà di qualsiasi entità di database nel file di configurazione.
Nota
dab update
supporta tutte le opzioni supportate da dab add
. Inoltre, supporta anche le opzioni elencate.
Sintassi
dab update [entity-name] [options]
Esempi
dab update Publisher --permissions "authenticated:*"
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
--relationship | ❌ No | ✔️ Sì | corda | Specificare la relazione tra due entità. Specificare il nome della relazione. | |
--cardinalità | ✔️ Sì ¹ | ✔️ Sì | corda | Specificare la cardinalità tra due entità. Potrebbe essere uno o molti. | |
--target.entity | ✔️ Sì ¹ | ✔️ Sì | corda | Un'altra entità esposta a cui è correlata l'entità di origine. | |
--linking.object | ❌ No | ✔️ Sì | corda | Oggetto di database utilizzato per supportare una relazione M:N. | |
--linking.source.fields | ❌ No | ✔️ Sì | corda | Campi di database nell'oggetto di collegamento per connettersi all'elemento correlato nell'entità di origine. Campi delimitati da virgole. | |
--linking.target.fields | ❌ No | ✔️ Sì | corda | Campi di database nell'oggetto di collegamento per connettersi all'elemento correlato nell'entità di destinazione. Campi delimitati da virgole. | |
--relationship.fields | ❌ No | ✔️ Sì | corda | Specificare i campi da usare per il mapping delle entità. Esempio: --relationship.fields "id:book_id" . In questo caso, id rappresenta la colonna di sourceEntity, mentre book_id da targetEntity. Le chiavi esterne sono necessarie tra le origini sottostanti, se non specificato. |
|
-m,--map | ❌ No | ✔️ Sì | corda | Specificare i mapping tra i campi di database e i campi GraphQL e REST. Formato: --map "backendName1:exposedName1, backendName2:exposedName2,..." . |
¹ Questa opzione è necessaria solo quando viene utilizzata l'opzione --relationship
.
export
Esportare lo schema richiesto come file e salvarlo su disco in base alle opzioni.
Sintassi
dab export [options]
Esempi
dab export --graphql -o ./schemas
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
--graphql | ❌ No | false |
❌ No | Esportare lo schema GraphQL. | |
-o,--output | ✔️ Sì | ✔️ Sì | corda | Specificare la directory per salvare il file dello schema. | |
-g,--graphql-schema-file | ❌ No | schema.graphql |
✔️ Sì | corda | Specificare il nome del file di schema Graphql. |
-c,--config | ❌ No | dab-config.json |
✔️ Sì | corda | Percorso del file di configurazione. |
start
Avviare il motore di runtime con il file di configurazione fornito per gestire le richieste REST e GraphQL.
Sintassi
dab start [options]
Esempi
dab start
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
--verbose | ❌ No | ❌ No | Specificare il livello di registrazione come informativo. | ||
--LogLevel | ❌ No |
Debug quando hostMode=development , Error quando HostMode=Production |
✔️ Sì | corda | Specificare il livello di registrazione come valore specificato. esempio: debug, errore, informazioni e così via. |
--no-https-redirect | ❌ No | ✔️ Sì | - | Disabilita i reindirizzamenti https automatici. | |
-c,--config | ❌ No | dab-config.json |
✔️ Sì | corda | Percorso del file di configurazione. |
Nota
Non è possibile usare --verbose
e --LogLevel
contemporaneamente. Per altre informazioni sui diversi livelli di registrazione, vedere livelli di log .NET.
validate
Convalida il file di configurazione di runtime usato dal motore di runtime di Generatore API dati. Il processo di convalida garantisce che il file di configurazione sia conforme allo schema e contenga tutte le informazioni necessarie per il corretto funzionamento del motore di runtime.
Sintassi
dab validate [options]
Esempi
dab validate
Opzioni
Opzioni | Opzione obbligatoria | Valore predefinito | Valore obbligatorio | Tipo valore | Descrizione |
---|---|---|---|---|---|
-c,--config | ❌ No | dab-config.json |
✔️ Sì | corda | Percorso del file di configurazione che rappresenta la destinazione della convalida. |
configure
Il comando dab configure
è progettato per semplificare l'aggiornamento delle proprietà di configurazione all'esterno della sezione delle entità. In questo documento vengono descritti i dettagli di progettazione, funzionalità e implementazione del comando dab configure. Supporta la modifica dell'interfaccia della riga di comando per le proprietà di configurazione nelle sezioni di origine dati e runtime della configurazione di runtime.
Nota
dab configure
è solo per aggiornare le sezioni di origine dati e runtime della configurazione. Per la sezione delle entità, è già disponibile il comando dab update.
Sintassi
dab configure [options] [value]
Esempi
dab configure --runtime.rest.enabled true
Opzioni
Configuration File, proprietà | Flag dell'interfaccia della riga di comando | Tipo di dati | Nullable | Descrizione |
---|---|---|---|---|
origine dati. tipo di database |
|
Stringa: MSSQL , PostgreSQL , CosmosDB_NoSQL , MySQL |
❌ | Questo valore indica il tipo di database. |
origine dati. stringa di connessione |
|
Corda | ❌ | Fa riferimento alla stringa di connessione per l'origine dati. |
origine dati. options.database |
|
Corda | ✅ | Fa riferimento al nome del database per Cosmos DB per NoSql. |
origine dati. options.container |
|
Corda | ✅ | Fa riferimento al nome del contenitore per Cosmos DB per NoSql. |
origine dati. options.schema |
|
Corda | ✅ | Fornisce il percorso dello schema per Cosmos DB per NoSql. |
origine dati. options.set-session-context |
|
Boolean: true , false (impostazione predefinita: true ) |
✅ | Indica se abilitare il contesto della sessione. |
Runtime. rest.enabled |
|
Boolean: true , false (impostazione predefinita: true ) |
❌ | Indica se abilitare l'endpoint REST di DAB. |
Runtime. rest.path |
|
Stringa (impostazione predefinita: /api ) |
❌ | Personalizzare il percorso dell'endpoint REST di DAB. Condizioni: prefisso con '/', senza spazi e senza caratteri riservati. |
Runtime. rest.request-body-strict |
|
Boolean: true , false (impostazione predefinita: true ) |
✅ | Consente/Impedisce campi del corpo della richiesta REST estranei. |
Runtime. graphql.enabled |
|
Boolean: true , false (impostazione predefinita: true ) |
❌ | Abilitare/disabilitare l'endpoint GraphQL di DAB. |
Runtime. graphql.path |
|
Stringa (impostazione predefinita: /graphql ) |
❌ | Personalizzare il percorso dell'endpoint GraphQL di DAB. Condizioni: prefisso con '/', senza spazi e senza caratteri riservati. |
Runtime. graphql.depth-limit |
|
Numero intero | ✅ | Questo si riferisce alla profondità massima consentita della query nidificata graphQL. Valori consentiti: (0.2147483647] inclusi. Il valore predefinito è infinito. Usare -1 per rimuovere il limite. |
Runtime. graphql.allow-introspection |
|
Boolean: true , false (impostazione predefinita: true ) |
✅ | Consenti/Nega richieste di introspezione GraphQL nello schema GraphQL. |
Runtime. graphql.multiple-mutations.create.enabled |
|
Boolean: true , false (impostazione predefinita: true ) |
✅ | Abilitare/disabilitare operazioni di creazione di mutazioni multiple sullo schema GraphQL generato da DAB. |
Runtime. host.mode |
|
Stringa: Development , Production predefinita: Development |
❌ | Impostare la modalità di esecuzione host di DAB in Sviluppo o Produzione. |
Runtime. host.cors.origins |
|
Matrice di stringhe | ✅ | Usare questa opzione per sovrascrivere le origini consentite in CORS. Impostazione predefinita: [] (matrice separata da spazi di stringhe). |
Runtime. host.cors.allow-credentials |
|
Boolean: true , false (impostazione predefinita: false ) |
✅ | Impostare il valore per Access-Control Allow-Credentials intestazione in --host.cors.allow-credentials . |
Runtime. host.authentication.provider |
|
Stringa: StaticWebApps , AppService , AzureAD , Jwt |
✅ | Configurare il nome del provider di autenticazione. Impostazione predefinita: StaticWebApps . |
Runtime. host.authentication.jwt.audience |
|
Matrice di stringhe | ✅ | Usare questa opzione per configurare i destinatari previsti del token Jwt. |
Runtime. host.authentication.jwt.issuer |
|
Corda | ✅ | Questo si riferisce all'entità che ha emesso il token Jwt. |
Runtime. cache.enabled |
|
Boolean: true , false (impostazione predefinita: false ) |
✅ | Abilitare/disabilitare la cache di DAB a livello globale. È anche necessario abilitare separatamente la cache di ogni entità. |
Runtime. cache.ttl-seconds |
|
Integer (impostazione predefinita: 5 ) |
✅ | Personalizzare il tempo predefinito predefinito globale della cache DAB in secondi. |