Referência da interface de linha de comando do construtor de API de dados
A interface de linha de comando (CLI) do Data API builder (dab CLI ou dab
) é uma ferramenta de linha de comando que simplifica a experiência de desenvolvimento local para aplicativos que usam o Data API builder.
Dica
A CLI do construtor de API de dados vem com um sistema de ajuda integrado. Para obter uma lista de quais comandos estão disponíveis, use a opção --help
no comando dab
.
dab --help
Para obter ajuda sobre um comando específico, use a opção --help
. Por exemplo, para saber mais sobre o comando init
:
dab init --help
Verbos e opções de linha de comando
init
Inicializa a configuração de tempo de execução para o mecanismo de tempo de execução do construtor de API de dados. Ele cria um novo arquivo JSON com as propriedades fornecidas como opções.
Sintaxe
dab init [options]
Exemplos
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
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
--database-type | ✔️ Sim | ✔️ Sim | string | Tipo de banco de dados a ser conectado. Valores suportados: mssql , cosmosdb_nosql , cosmosdb_postgresql , mysql , postgresql . |
|
--connection-string | ❌ Não | "" |
✔️ Sim | string | Detalhes da conexão para se conectar ao banco de dados. |
--cosmosdb_nosql-database | ✔️ Sim ¹ | ✔️ Sim | string | Nome do banco de dados para Cosmos DB para NoSql. | |
--cosmosdb_nosql-contêiner | ❌ Não | ✔️ Sim | string | Nome do contêiner para Cosmos DB para NoSql. | |
--graphql-schema | ✔️ Sim ¹ | ✔️ Sim | string | Caminho do esquema GraphQL | |
--set-session-context | ❌ Não | false |
❌ Não | Habilite o envio de dados para o MsSql usando o contexto da sessão. | |
--host-mode | ❌ Não | production |
✔️ Sim | string | Especificar o modo Host - desenvolvimento ou produção |
--cors-origem | ❌ Não | "" |
✔️ Sim | string | Especifique a lista de origens permitidas. |
--auth.provider | ❌ Não | StaticWebApps |
✔️ Sim | string | Especifique o provedor de identidade. |
--rest.path | ❌ Não | /api |
✔️ Sim | string | Especifique o prefixo do ponto de extremidade REST. |
--rest.enabled | ❌ Não | true |
✔️ Sim | Booleano | Habilita o ponto de extremidade REST para todas as entidades. |
--rest.request-body-strict | ❌ Não | true |
✔️ Sim | Não permite campos estranhos no corpo da solicitação. | |
--graphql.path | ❌ Não | /graphql |
✔️ Sim | string | Especifique o prefixo do ponto de extremidade GraphQL. |
--graphql.enabled | ❌ Não | true |
✔️ Sim | Booleano | Habilita o ponto de extremidade GraphQL para todas as entidades. |
--graphql.multiple-create.enabled | ❌ Não | false |
✔️ Sim | Permite várias funcionalidades de criação no GraphQL. | |
--auth.audience | ❌ Não | ✔️ Sim | string | Identifica os destinatários aos quais o Json Web Token (JWT) se destina. | |
--auth.issuer | ❌ Não | ✔️ Sim | string | Especifique a parte que emitiu o token JWT. | |
-c,--config | ❌ Não | dab-config.json |
✔️ Sim | string | Caminho para o arquivo de configuração. |
¹ Esta opção só é necessária quando --database-type
está definido como cosmosdb_nosql
.
add
Adicione uma nova entidade de banco de dados ao arquivo de configuração. Verifique se você já tem um arquivo de configuração antes de executar este comando, caso contrário, ele retorna um erro.
Sintaxe
dab add [entity-name] [options]
Exemplos
dab add Book -c "dab-config.MsSql.json" --source dbo.books --permissions "anonymous:*"
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
-s,--source | ✔️ Sim | ✔️ Sim | string | Nome da tabela ou contêiner de origem. | |
--permissões | ✔️ Sim | ✔️ Sim | string | Permissões necessárias para acessar a tabela ou o contêiner de origem. Formato: [role]:[actions] . |
|
--source.type | ❌ Não | table |
✔️ Sim | string | Tipo do objeto de banco de dados. Valores suportados: table , view , stored-procedure . |
--source.params | ❌ Não | ✔️ Sim, se o proc tiver parâmetros | string | Um dicionário de parâmetros de procedimento armazenado e seus tipos de dados. Os tipos de dados suportados são string , number e boolean . Os parâmetros são especificados no formato: paramName:type . Por exemplo: --source.params "id:number,isActive:boolean,name:string" . |
|
--source.key campos | ✔️ Sim ¹ | ✔️ Sim | string | Um ou mais campos a serem usados como chaves primárias apenas para tabelas e exibições. Valores separados por vírgula. Exemplo --source.key-fields "id,name,type" . |
|
--resto | ❌ Não | nome da entidade que diferencia maiúsculas de minúsculas | ✔️ Sim | string | Rota para API REST. Exemplos: --rest: false -> Desabilita chamadas de API REST para esta entidade.
--rest: true -> Nome da entidade torna-se o caminho restante.
--rest: "customPathName" -> Provided customPathName torna-se o caminho REST. |
--rest.methods | ❌ Não | post |
✔️ Sim | string | Ações HTTP a serem suportadas para o procedimento armazenado. Especifique as ações como uma lista separada por vírgula. As ações HTTP válidas são:[get, post, put, patch, delete]. |
--graphql | ❌ Não | nome da entidade que diferencia maiúsculas de minúsculas | ✔️ Sim | Bool/Corda | Tipo de entidade exposto para GraphQL. Exemplos: --graphql: false -> desativa chamadas graphql para esta entidade.
--graphql: true -> Expõe a entidade para GraphQL com nomes padrão. A forma singular do nome da entidade é considerada para os nomes de consulta e mutação.
--graphql: "customQueryName" -> Define explicitamente o valor singular enquanto o DAB pluraliza o valor fornecido para consultas e mutações.
--graphql: "singularName:pluralName" -> Define os valores singular e plural (delimitados por dois pontos : ) usados para consultas e mutações. |
--graphql.operation | ❌ Não | mutation |
✔️ Sim | string | Operação GraphQL a ser suportada para procedimento armazenado. Valores suportados: query , mutation . |
--fields.include | ❌ Não | ✔️ Sim | string | Campos com permissão de acesso. | |
--fields.exclude | ❌ Não | ✔️ Sim | string | Campos excluídos das listas de ações. | |
--policy-database | ❌ Não | ✔️ Sim | string | Especifique uma regra de filtro de estilo OData que é injetada na consulta enviada ao banco de dados. | |
-c,--config | ❌ Não | dab-config.json |
✔️ Sim | string | Caminho para o arquivo de configuração. |
¹ Esta opção só é necessária quando --source.type
está definido como view
.
update
Atualize as propriedades de qualquer entidade de banco de dados no arquivo de configuração.
Observação
dab update
suporta todas as opções suportadas pelo dab add
. Além disso, também suporta as opções listadas.
Sintaxe
dab update [entity-name] [options]
Exemplos
dab update Publisher --permissions "authenticated:*"
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
--relacionamento | ❌ Não | ✔️ Sim | string | Especifique a relação entre duas entidades. Forneça o nome da relação. | |
--cardinalidade | ✔️ Sim ¹ | ✔️ Sim | string | Especifique a cardinalidade entre duas entidades. Pode ser um ou muitos. | |
--target.entity | ✔️ Sim ¹ | ✔️ Sim | string | Outra entidade exposta à qual a entidade de origem se relaciona. | |
--linking.object | ❌ Não | ✔️ Sim | string | Objeto de banco de dados usado para dar suporte a uma relação M:N. | |
--linking.source.fields | ❌ Não | ✔️ Sim | string | Campos de banco de dados no objeto de vinculação para se conectar ao item relacionado na entidade de origem. Campos separados por vírgula. | |
--linking.target.fields | ❌ Não | ✔️ Sim | string | Campos de banco de dados no objeto de vinculação para se conectar ao item relacionado na entidade de destino. Campos separados por vírgula. | |
--relationship.fields | ❌ Não | ✔️ Sim | string | Especifique os campos a serem usados para mapear as entidades. Exemplo: --relationship.fields "id:book_id" . Aqui, id representa a coluna de sourceEntity, enquanto book_id de targetEntity. As chaves estrangeiras são necessárias entre as fontes subjacentes, se não forem especificadas. |
|
-m,--map | ❌ Não | ✔️ Sim | string | Especifique mapeamentos entre campos de banco de dados e campos GraphQL e REST. Formato: --map "backendName1:exposedName1, backendName2:exposedName2,..." . |
¹ Esta opção só é necessária quando é utilizada a opção --relationship
.
export
Exporte o esquema necessário como um arquivo e salve em disco com base nas opções.
Sintaxe
dab export [options]
Exemplos
dab export --graphql -o ./schemas
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
--graphql | ❌ Não | false |
❌ Não | Exporte o esquema GraphQL. | |
-o,--output | ✔️ Sim | ✔️ Sim | string | Especifique o diretório para salvar o arquivo de esquema. | |
-g,--graphql-schema-file | ❌ Não | schema.graphql |
✔️ Sim | string | Especifique o nome do arquivo de esquema Graphql. |
-c,--config | ❌ Não | dab-config.json |
✔️ Sim | string | Caminho para o arquivo de configuração. |
start
Inicie o mecanismo de tempo de execução com o arquivo de configuração fornecido para atender às solicitações REST e GraphQL.
Sintaxe
dab start [options]
Exemplos
dab start
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
-- verbose | ❌ Não | ❌ Não | Especifique o nível de log como informativo. | ||
--LogLevel | ❌ Não |
Debug quando hostMode=development , senão Error quando HostMode=Production |
✔️ Sim | string | Especifique o nível de log como valor fornecido. exemplo: depuração, erro, informação, etc. |
--no-https-redirect | ❌ Não | ✔️ Sim | - | Desativa redirecionamentos https automáticos. | |
-c,--config | ❌ Não | dab-config.json |
✔️ Sim | string | Caminho para o arquivo de configuração. |
Observação
Você não pode usar --verbose
e --LogLevel
ao mesmo tempo. Para obter mais informações sobre diferentes níveis de log, consulte níveis de log do .NET.
validate
Valida o arquivo de configuração de tempo de execução usado pelo mecanismo de tempo de execução do construtor de API de dados. O processo de validação garante que o arquivo de configuração seja compatível com o esquema e contenha todas as informações necessárias para que o mecanismo de tempo de execução funcione corretamente.
Sintaxe
dab validate [options]
Exemplos
dab validate
Opções
Opções | Opção Necessária | Valor padrão | Valor Necessário | Tipo de valor | Descrição |
---|---|---|---|---|---|
-c,--config | ❌ Não | dab-config.json |
✔️ Sim | string | Caminho para o arquivo de configuração que é o destino da validação. |
configure
O comando dab configure
foi projetado para simplificar a atualização das propriedades de configuração fora da seção de entidades. Este documento descreve os detalhes de design, funcionalidade e implementação do comando dab configure. Ele suporta editar a CLI para propriedades de configuração nas seções de fonte de dados e tempo de execução da configuração de tempo de execução.
Observação
dab configure
é apenas para atualizar as seções de fonte de dados e tempo de execução da configuração. Para a seção entidades, já temos o comando dab update.
Sintaxe
dab configure [options] [value]
Exemplos
dab configure --runtime.rest.enabled true
Opções
Propriedade do arquivo de configuração | Sinalizador CLI | Tipo de dados | Nulo | Descrição |
---|---|---|---|---|
fonte de dados. tipo de banco de dados |
|
String: MSSQL , PostgreSQL , CosmosDB_NoSQL , MySQL |
❌ | Esse valor indica o tipo de banco de dados. |
fonte de dados. cadeia de conexão |
|
String | ❌ | Refere-se à cadeia de conexão para a fonte de dados. |
fonte de dados. opções.banco de dados |
|
String | ✅ | Refere-se ao nome do banco de dados do Cosmos DB para NoSql. |
fonte de dados. opções.container |
|
String | ✅ | Refere-se ao nome do contêiner para Cosmos DB para NoSql. |
fonte de dados. opções.esquema |
|
String | ✅ | Fornece o caminho do esquema para o Cosmos DB para NoSql. |
fonte de dados. opções.set-session-context |
|
Booleano: true , false (padrão: true ) |
✅ | Se deseja habilitar o contexto da sessão. |
tempo de execução. rest.enabled |
|
Booleano: true , false (padrão: true ) |
❌ | Significa se o ponto de extremidade REST do DAB deve ser habilitado. |
tempo de execução. rest.path |
|
String (padrão: /api ) |
❌ | Personalize o caminho do ponto de extremidade REST do DAB. Condições: Prefixo com '/', sem espaços e sem caracteres reservados. |
tempo de execução. rest.request-corpo-estrito |
|
Booleano: true , false (padrão: true ) |
✅ | Permite/Proíbe campos de corpo de solicitação REST estranhos. |
tempo de execução. graphql.ativado |
|
Booleano: true , false (padrão: true ) |
❌ | Ativar/desativar o ponto de extremidade GraphQL do DAB. |
tempo de execução. graphql.path |
|
String (padrão: /graphql ) |
❌ | Personalize o caminho do ponto de extremidade GraphQL do DAB. Condições: Prefixo com '/', sem espaços e sem caracteres reservados. |
tempo de execução. graphql.profundidade-limite |
|
Inteiro | ✅ | Isso se refere à profundidade máxima permitida da consulta aninhada graphQL. Valores permitidos: (0,2147483647] inclusive. O padrão é infinito. Use -1 para remover limite. |
tempo de execução. graphql.allow-introspecção |
|
Booleano: true , false (padrão: true ) |
✅ | Permitir/negar solicitações de introspeção do GraphQL no esquema do GraphQL. |
tempo de execução. graphql.multiple-mutations.create.enabled |
|
Booleano: true , false (padrão: true ) |
✅ | Ativar/desativar operações de criação de múltiplas mutações no esquema GraphQL gerado pelo DAB. |
tempo de execução. host.mode |
|
String: Development , Production Padrão: Development |
❌ | Defina o modo de execução do host do DAB em Desenvolvimento ou Produção. |
tempo de execução. host.cors.origins |
|
Matriz de cadeias de caracteres | ✅ | Use isso para substituir origens permitidas no CORS. Padrão: [] (matriz de cadeias de caracteres separadas por espaço). |
tempo de execução. host.cors.allow-credenciais |
|
Booleano: true , false (padrão: false ) |
✅ | Defina o valor para Access-Control Allow-Credentials cabeçalho em --host.cors.allow-credentials . |
tempo de execução. host.authentication.provider |
|
String: StaticWebApps , AppService , AzureAD , Jwt |
✅ | Configure o nome do provedor de autenticação. Padrão: StaticWebApps . |
tempo de execução. host.authentication.jwt.audiência |
|
Matriz de cadeias de caracteres | ✅ | Use isso para configurar o(s) destinatário(s) pretendido(s) do Token Jwt. |
tempo de execução. host.authentication.jwt.issuer |
|
String | ✅ | Isso se refere à entidade que emitiu o Jwt Token. |
tempo de execução. cache.enabled |
|
Booleano: true , false (padrão: false ) |
✅ | Ativar/desativar o cache do DAB globalmente. (Você também deve habilitar o cache de cada entidade separadamente.) |
tempo de execução. cache.ttl-segundos |
|
Inteiro (padrão: 5 ) |
✅ | Personalize o tempo padrão global do cache DAB para viver em segundos. |
Conteúdo relacionado
- Funções de referência
- de referência de configuração