Compartilhar via


Construtor de API de Dados (versão prévia)

A extensão MSSQL para Visual Studio Code inclui uma interface do usuário integrada para o construtor de API de Dados, para que você possa criar pontos de extremidade REST, GraphQL e MCP para suas tabelas do banco de dados SQL sem gravar arquivos de configuração ou sair do Visual Studio Code. Você pode selecionar quais tabelas expor, configurar permissões CRUD, escolher tipos de API, visualizar a configuração gerada e implantar um back-end local alimentado pelo construtor de API de Dados, tudo em uma interface visual.

Captura de tela da interface do usuário do Construtor de API de Dados com lista de entidades e caixas de seleção CRUD no Visual Studio Code.

Dica

O construtor de API de dados está atualmente em versão prévia e pode mudar com base nos comentários. Junte-se à comunidade no GitHub Discussions para compartilhar ideias ou relatar problemas.

Importante

Esse recurso tem limitações conhecidas, incluindo suporte apenas à autenticação SQL para implantação de contêiner e compatibilidade restrita de tipo de dados. Examine as limitações conhecidas e os problemas conhecidos antes da implantação.

Características

A integração do Construtor de API de Dados oferece estes recursos:

  • Selecione entidades de banco de dados (tabelas) para expor como pontos de extremidade de API, organizados por esquema com agrupamento expansível.
  • Configure as permissões CRUD (Criar, Ler, Atualizar e Excluir) de forma independente para cada entidade.
  • Escolha tipos de API para gerar: REST, GraphQL, MCP ou qualquer combinação.
  • Defina configurações avançadas de entidade, incluindo caminhos REST personalizados, nomes de tipo graphQL personalizados e funções de autorização.
  • Visualizar, em um painel de definição de somente leitura, a configuração JSON gerada pelo gerador de configuração de API de Dados.
  • Implante o construtor de API de Dados localmente como um contêiner do Docker com verificações de pré-requisito automatizadas.
  • Teste as APIs em execução diretamente no Visual Studio Code usando o Simple Browser interno.
  • Use o chat do GitHub Copilot para configurar entidades por meio de prompts de linguagem natural.

Pré-requisitos

Antes de usar o Construtor de API de Dados, verifique se os seguintes requisitos são atendidos:

Construtor de API para Dados Abertos

Você pode abrir a exibição de configuração do Construtor de API de Dados em dois pontos de entrada:

  • No Pesquisador de Objetos: clique com o botão direito do mouse em um nó de banco de dados e selecione Criar API de Dados (Versão Prévia)....

    Captura de tela da exibição de configuração do Construtor de API de Dados com lista de entidades e caixas de seleção CRUD no Visual Studio Code.

  • No Designer de Esquema: selecione o botão API de Design (botão no canto superior direito da barra de ferramentas) ou selecione o ícone back-end no painel esquerdo.

    Captura de tela do botão Design da API e do ícone back-end na barra de ferramentas do Designer de Esquema.

A exibição de configuração do construtor de API de Dados é aberta, exibindo suas entidades de banco de dados, opções de tipo de API e controles de configuração.

Selecionar entidades

A exibição de seleção de entidade lista todas as tabelas do banco de dados conectado, agrupadas por esquema.

  • Cada linha de esquema é recolhível e mostra um selo de contagem indicando quantas entidades estão habilitadas (por exemplo, "3/5").
  • Selecione uma caixa de seleção no nível do esquema para ativar ou desativar todas as entidades nesse esquema. A caixa de seleção dá suporte à seleção de três estados: todos, nenhum ou misto.
  • Cada linha de entidade exibe: uma caixa de seleção para habilitar, o nome da entidade, a tabela de origem, caixas de seleção CRUD e um botão de configurações.
  • Desabilitar uma entidade esmaece sua linha e desativa as caixas de seleção e o botão de configurações do CRUD.

Use a caixa de filtro na parte superior para pesquisar entidades por nome, esquema ou tabela de origem. O filtro não diferencia maiúsculas de minúsculas, e a contagem é atualizada com base nos resultados filtrados.

Captura de tela da caixa de filtro de entidades mostrando um termo de pesquisa que filtra a lista de entidades.

Configurar permissões e tipos de API

Permissões CRUD

Alterne as caixas de seleção Criar, Ler, Atualizar e Excluir individuais para cada entidade. As caixas de seleção CRUD no nível do cabeçalho permitem alternar a ação para todas as entidades habilitadas e oferecem suporte à seleção de três estados.

Seleção de tipo de API

Na parte superior do modo de exibição de configuração, selecione os tipos de API a serem gerados:

  • API REST: gera endpoints REST com Swagger UI para testes.
  • GraphQL: gera pontos de extremidade do GraphQL com o playground do Nitro GraphQL.
  • MCP (versão prévia): gera endpoints do Protocolo de Contexto do Modelo.
  • Tudo: seleciona ou desmarca todos os tipos de API.

Selecione pelo menos um tipo de API.

Captura de tela das caixas de seleção API REST, GraphQL, MCP e Todas na parte superior da exibição de configuração do construtor de API de Dados.

Configuração de entidade avançada

Selecione o ícone de engrenagem em uma linha de entidade para abrir a caixa de diálogo Configuração de Entidade Avançada , na qual você pode configurar:

  • Nome da entidade: o nome usado em rotas e respostas de API (padrão para o nome da tabela).
  • Função de Autorização: Alternar entre Anônimo (nenhuma autenticação necessária) e Autenticado (requer autenticação do usuário).
  • Caminho REST personalizado: substituição opcional para o caminho padrão api/entityName .
  • Tipo de GraphQL Personalizado: substituição opcional para o nome de tipo GraphQL padrão.

Selecione Aplicar Alterações para salvar sua configuração ou Cancelar para descartar.

Captura de tela da caixa de diálogo Configuração de Entidade Avançada mostrando os campos Nome da Entidade, Função de Autorização, Caminho REST Personalizado e Tipos de GraphQL Personalizados.

Configuração de Pré-visualização

Selecione o botão Exibir Configuração na barra de ferramentas para abrir o painel Definição na parte inferior do modo de exibição de configuração. Este painel mostra o arquivo de configuração JSON do construtor de API de Dados gerado em um formato somente leitura.

O painel Definição:

  • Reflete a seleção de entidade atual, os tipos de API e as configurações avançadas.
  • Permanece em sincronia com a interface do usuário e o chat do GitHub Copilot: as alterações feitas em qualquer local atualizam imediatamente a versão prévia.
  • Inclui apenas entidades habilitadas na saída de configuração.
  • Mostra seções de runtime REST, GraphQL e MCP com base nos tipos de API selecionados.

Selecione Abrir no Editor para exibir a configuração em uma aba completa do editor do Visual Studio Code. Selecione Copiar para copiar a configuração para a área de transferência.

Captura de tela do painel Definição mostrando a configuração JSON do construtor de API de Dados gerada com botões Abrir no Editor e Copiar.

Implantar localmente com o Docker

O construtor de API de dados é implantado como um contêiner local do Docker. O assistente de implantação orienta você pelo processo:

  1. Selecione o botão Implantar na barra de ferramentas.

  2. A caixa de diálogo Implantar Contêiner do DAB é aberta, descrevendo a implantação do contêiner local. Selecione Próximo.

    Captura de tela da caixa de diálogo Implantar Contêiner do DAB com a descrição da implantação do contêiner local.

  3. A tela Preparação do Docker executa verificações de pré-requisito sequencialmente:

    • Verificando a instalação do Docker: verifica se o Docker está instalado em seu sistema.
    • Iniciando a Área de Trabalho do Docker: garante que o Docker Desktop esteja em execução.
    • Verificando o mecanismo do Docker: verifica se o mecanismo do Docker está pronto.

    Captura de tela das verificações de pré-requisito do Docker em execução sequencialmente.

    Selecione Avançar para continuar depois que todas as verificações forem concluídas.

    Captura de tela das verificações de pré-requisito do Docker concluídas com êxito.

  4. A tela Configurações do Contêiner é exibida:

    • Nome do contêiner: nome opcional para o contêiner do Docker (um padrão gerado automaticamente é fornecido).
    • Porta: a porta na qual expor a API (padrão: 5000).
    • O contêiner reutiliza a cadeia de conexão da conexão de banco de dados ativa.

    Selecione Criar Contêiner.

    Captura de tela da tela Configurações do Contêiner com os campos Nome do Contêiner e Porta.

  5. A implantação executa três etapas sequencialmente: baixar a imagem, iniciar o contêiner e verificar a disponibilidade.

    Captura de tela do progresso da implantação mostrando as etapas de criação do contêiner.

  6. Na implantação bem-sucedida, o assistente exibe as URLs de endpoint para cada tipo de API habilitado.

    Tipo de API Ponto final Ação
    REST http://localhost:{port}/api Exibir Swagger abre a interface do usuário do Swagger
    GraphQL http://localhost:{port}/graphql Nitro abre o playground do GraphQL
    MCP http://localhost:{port}/mcp Adicionar ao VS Code grava a configuração do servidor MCP para .vscode/mcp.json

    Selecione qualquer link para abrir a interface de teste no Navegador Simples interno do Visual Studio Code.

    Captura de tela da tela de conclusão da implantação mostrando que o contêiner do Data API Builder está em execução com URLs de ponto de extremidade.

    O exemplo a seguir mostra a Swagger UI para testar endpoints REST diretamente no Visual Studio Code.

    Captura de tela da interface do usuário do Swagger para pontos de extremidade REST no Navegador Simples do Visual Studio Code.

    O exemplo a seguir mostra o playground do Nitro GraphQL para testar consultas e mutações do GraphQL:

    Captura de tela do playground do Nitro GraphQL no Navegador Simples do Visual Studio Code.

Testar a API em execução

Após a implantação, você pode testar suas APIs diretamente na caixa de diálogo de conclusão da implantação usando o Navegador Simples interno do Visual Studio Code.

API REST

Selecione Exibir Swagger para abrir a interface do usuário do Swagger, uma interface visual interativa para explorar e testar pontos de extremidade REST. Você pode procurar entidades disponíveis, exibir esquemas de solicitação e resposta e executar chamadas à API diretamente.

O Construtor de API de Dados gera os seguintes pontos de extremidade REST para cada entidade habilitada:

Método Ponto final Descrição
GET /api/{entity} Listar todos os registros de uma entidade
GET /api/{entity}/{primaryKey}/{value} Obter um único registro por chave primária
POST /api/{entity} Criar um novo registro
PUT /api/{entity}/{primaryKey}/{value} Substituir um registro existente
PATCH /api/{entity}/{primaryKey}/{value} Atualizar campos específicos em um registro
DELETE /api/{entity}/{primaryKey}/{value} Excluir um registro

Para obter mais informações sobre pontos de extremidade REST, consulte a API REST do construtor de API de Dados.

GraphQL

Selecione o Nitro para abrir o playground do Nitro GraphQL, onde você pode escrever e testar consultas e mutações do GraphQL interativamente.

Para obter mais informações sobre pontos de extremidade do GraphQL, consulte a API graphQL do construtor de API de Dados.

MCP

Selecione Adicionar ao VS Code para gravar a configuração do servidor MCP em .vscode/mcp.json. Essa configuração disponibiliza o endpoint do builder de API de dados como um servidor MCP no Visual Studio Code. Ferramentas de IA, como o GitHub Copilot, podem interagir com seu banco de dados por meio da API do construtor de API de Dados.

Para obter mais informações sobre o MCP no Visual Studio Code, consulte Usar servidores MCP no Visual Studio Code.

Teste de terminal

Você também pode testar endpoints a partir do terminal:

API REST:

Obtenha todos os registros de uma entidade específica:

curl http://localhost:{port}/api/{entityName}

Criar um novo registro (se a permissão Criar estiver habilitada):

curl -X POST http://localhost:{port}/api/{entityName} \
  -H "Content-Type: application/json" \
  -d '{"Column1": "Value1", "Column2": "Value2"}'

GraphQL:

curl -X POST http://localhost:{port}/graphql \
  -H "Content-Type: application/json" \
  -d '{"query": "{ {entityName} { items { Column1 Column2 } } }"}'

Dica

Substitua {port} pela porta configurada durante a implantação (padrão: 5000).

Integração do GitHub Copilot

Para desenvolvedores que preferem linguagem natural, o GitHub Copilot é integrado à experiência do construtor de API de Dados. Selecione o botão Chat na barra de ferramentas para abrir uma sessão de chat do GitHub Copilot destinada ao contexto de configuração do Data API builder. O GitHub Copilot e a interface do usuário permanecem em sincronia: as alterações feitas por meio do chat são refletidas imediatamente na interface do usuário e vice-versa.

Aqui estão alguns exemplos de prompts:

  • "Enable all SalesLT entities for read operations"
  • "Expose only the Customer and Product tables with full CRUD permissions"
  • "Set all entities in the dbo schema to read-only"
  • "Disable the BuildVersion and ErrorLog entities"
  • "Can you also enable MCP for the Data API builder API?"

O exemplo a seguir mostra o GitHub Copilot habilitando entidades e configurando permissões CRUD por meio de um prompt de chat:

Captura de tela do GitHub Copilot habilitando entidades e definindo permissões CRUD por meio de um prompt de linguagem natural no chat do construtor de API de Dados.

O exemplo a seguir mostra o GitHub Copilot ativando os endpoints MCP para a configuração do Data API builder.

Captura de tela do GitHub Copilot habilitando endpoints MCP por meio de um prompt de linguagem natural no chat do construtor de APIs de Dados.

Observação

A integração do GitHub Copilot requer que as extensões do GitHub Copilot e do GitHub Copilot Chat sejam instaladas e conectados. Para obter instruções de configuração, consulte Configurar o GitHub Copilot.

Limitações conhecidas

  • Somente tabelas: a interface do usuário de configuração dá suporte apenas a tabelas. As exibições e os procedimentos armazenados não estão disponíveis no designer no momento.
  • Docker Desktop necessário: a implantação local requer que o Docker Desktop seja instalado e em execução.
  • Somente autenticação SQL: os contêineres locais do Docker não dão suporte a métodos de autenticação da ID do Microsoft Entra, como ActiveDirectoryInteractive, por exemplo, porque o ambiente de contêiner não pode abrir um navegador para o fluxo de entrada interativo. A extensão exibirá uma notificação se a conexão atual usar um tipo de autenticação sem suporte.
  • Não há suporte para o banco de dados SQL no Microsoft Fabric: o banco de dados SQL no Microsoft Fabric requer a autenticação do Microsoft Entra exclusivamente e não dá suporte à autenticação SQL. Como a implantação de contêiner local requer autenticação SQL, a implantação no banco de dados SQL no Fabric não é um cenário viável.
  • Chave primária necessária: cada entidade de tabela exposta por meio do construtor de API de Dados deve ter uma restrição de chave primária definida no nível do banco de dados. Tabelas sem uma chave primária fazem com que o mecanismo do construtor de API de Dados falhe na inicialização.
  • A saída gerada por IA deve ser revisada: o GitHub Copilot pode produzir configurações incorretas ou abaixo do ideal. Sempre examine as configurações geradas antes da implantação.

Problemas conhecidos

  • Tipos de dados sem suporte do SQL Server: o Construtor de API de Dados não pode serializar determinados tipos de dados do SQL Server. Tabelas que contêm colunas com tipos sem suporte podem fazer com que o mecanismo falhe na inicialização. Tipos sem suporte incluem geography, geometry, hierarchyid, , rowversion, sql_variante xml. A extensão marca as entidades afetadas com um ícone de aviso e impede que elas sejam selecionadas para implantação. Para obter as informações mais recentes sobre o suporte a tipos de dados, consulte o problema do GitHub nº 3181.
  • Não há suporte para a autenticação interativa do Microsoft Entra ID na implantação de contêiner: o contêiner do Builder de API de Dados não pode executar a autenticação interativa do Microsoft Entra. As conexões que utilizam métodos interativos do ID do Entra da Microsoft são bloqueadas com uma notificação. Para obter mais informações, consulte o problema do GitHub nº 3246.
  • O MCP está em versão prévia: a experiência do MCP do Construtor de API de Dados está atualmente em versão prévia. Para obter mais informações, consulte a versão prévia do MCP do construtor de API de Dados.

Feedback e suporte

Se você tiver ideias, comentários ou quiser se envolver com a comunidade, participe da discussão em https://aka.ms/vscode-mssql-discussions. Para relatar um bug, visite https://aka.ms/vscode-mssql-bug. Para solicitar um novo recurso, vá para https://aka.ms/vscode-mssql-feature-request.