Partilhar via


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, numbere 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
--data-source.database-type String: MSSQL, PostgreSQL, CosmosDB_NoSQL, MySQL Esse valor indica o tipo de banco de dados.
fonte de dados.
cadeia de conexão
--data-source.connection-string String Refere-se à cadeia de conexão para a fonte de dados.
fonte de dados.
opções.banco de dados
--data-source.options.database String Refere-se ao nome do banco de dados do Cosmos DB para NoSql.
fonte de dados.
opções.container
--data-source.options.container String Refere-se ao nome do contêiner para Cosmos DB para NoSql.
fonte de dados.
opções.esquema
--data-source.options.schema String Fornece o caminho do esquema para o Cosmos DB para NoSql.
fonte de dados.
opções.set-session-context
--data-source.options.set-session-context Booleano: true, false (padrão: true) Se deseja habilitar o contexto da sessão.
tempo de execução.
rest.enabled
--runtime.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
--runtime.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
--runtime.rest.request-body-strict Booleano: true, false (padrão: true) Permite/Proíbe campos de corpo de solicitação REST estranhos.
tempo de execução.
graphql.ativado
--runtime.graphql.enabled Booleano: true, false (padrão: true) Ativar/desativar o ponto de extremidade GraphQL do DAB.
tempo de execução.
graphql.path
--runtime.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
--runtime.graphql.depth-limit 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
--runtime.graphql.allow-introspection 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
--runtime.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
--runtime.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
--runtime.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
--runtime.host.cors.allow-credentials 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
--runtime.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
--runtime.host.authentication.jwt.audience 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
--runtime.host.authentication.jwt.issuer String Isso se refere à entidade que emitiu o Jwt Token.
tempo de execução.
cache.enabled
--runtime.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
--runtime.cache.ttl-seconds Inteiro (padrão: 5) Personalize o tempo padrão global do cache DAB para viver em segundos.