Compartilhar via


Integração de hospedagem do Data API Builder do Community Toolkit Azure

Inclui:integração de hospedagem não Client integração

Nota

Essa integração faz parte do Community Toolkit .NET.NET Aspire e não é oficialmente apoiada pela equipe de .NET.NET Aspire.

Neste artigo, você aprenderá a usar a integração de hospedagem do Construtor de API de Dados .NET.NET Aspire para executar o Construtor de API de Dados como um contêiner.

Integração de hospedagem

Para começar a usar a integração de hospedagem do Construtor de API de Dados do , instale o CommunityToolkit.. Hospedagem.. O DataApiBuilder pacote NuGet no projeto do host do aplicativo .

dotnet add package CommunityToolkit.Aspire.Hosting.Azure.DataApiBuilder

Para obter mais informações, consulte dotnet add package ou Gerenciar dependências de pacotes em aplicativos .NET.

Uso

No projeto de host do aplicativo, registre e consuma a integração do Construtor de API de Dados usando o método de extensão AddDataAPIBuilder para adicionar o contêiner do Construtor de API de Dados ao construtor de aplicativos.

 var builder = DistributedApplication.CreateBuilder(); 

// Add Data API Builder using dab-config.json 
var dab = builder.AddDataAPIBuilder("dab");

builder.AddProject<Projects.ExampleProject>() 
        .WithReference(dab); 

 // After adding all resources, run the app... 

Quando o .NET.NET Aspire adiciona uma imagem de contêiner ao host do aplicativo, conforme mostrado no exemplo anterior com a imagem mcr.microsoft.com/azure-databases/data-api-builder, ele cria uma nova instância do Construtor de API de Dados em sua máquina local. Uma referência ao recurso DAB (a variável dab) é adicionada ao projeto ExampleProject.

Configuração

Parâmetro Descrição
name O nome do recurso é um string necessário e é validado pelo ResourceNameAttribute.
configFilePaths Os caminhos para a configuração ou os arquivos de esquema para o construtor de API de Dados. Eles são opcionais e estão disponíveis como um params string[], o que significa que você pode omití-los completamente ou fornecer um ou mais caminhos em linha. Quando omitido, assume o valor padrão "./dab-config.json".
httpPort O número da porta para o contêiner do Construtor de API de Dados é representado como um int?. Por padrão, a porta é null; .NET.NET Aspire atribui uma porta quando nenhuma outra é especificada.

Configuração de imagem de contêiner do Construtor de API de Dados

Você pode especificar valores de registry/image/tag de contêiner personalizado usando as seguintes APIs encadeadas ao IResourceBuilder<DataApiBuilderContainerResource>:

  • WithImageRegistry: passe o nome do registro desejado, como ghcr.io para o Registro de Contêiner GitHub ou docker.io para Docker.
  • WithImage: forneça o nome da imagem, como azure-databases/data-api-builder.
  • WithImageTag: especifique uma marca de imagem a ser usada além de latest, que é o padrão na maioria dos casos.

Considere o exemplo a seguir que demonstra o encadeamento dessas APIs em conjunto, para expressar fluentemente que a imagem de contêiner do Construtor de API de Dados é totalmente qualificada como mcr.microsoft.com/azure-databases/data-api-builder:latest:

var dab = builder.AddDataAPIBuilder("dab")
    .WithImageRegistry("mcr.microsoft.com")
    .WithImage("azure-databases/data-api-builder")
    .WithImageTag("latest");

Configuração do banco de dados

Se você precisar configurar seu próprio banco de dados local, consulte a documentação de integração SQL Server.

Depois de adicionar o banco de dados como um recurso, você poderá referenciá-lo usando as seguintes APIs encadeadas ao IResourceBuilder<DataApiBuilderContainerResource>:

var dab = builder.AddDataAPIBuilder("dab")
    .WithReference(sqlDatabase)
    .WaitFor(sqlDatabase);

O método WaitFor garante que o banco de dados esteja pronto antes de iniciar o contêiner do Construtor de API de Dados.

Referenciar o recurso sqlDatabase injetará sua cadeia de conexão no contêiner do Construtor de API de Dados com o nome ConnectionStrings__<DATABASE_RESOURCE_NAME>. Em seguida, atualize o arquivo dab-config.json para incluir a cadeia de conexão do banco de dados:

"data-source": {
    "connection-string": "@env('ConnectionStrings__<DATABASE_RESOURCE_NAME>')",
}

Usando várias fontes de dados

Você pode passar vários arquivos de configuração para o método AddDataAPIBuilder:

var dab = builder.AddDataAPIBuilder("dab", 
        "./dab-config-1.json", 
        "./dab-config-2.json")
    .WithReference(sqlDatabase1)
    .WaitFor(sqlDatabase1)
    .WithReference(sqlDatabase2)
    .WaitFor(sqlDatabase2);

Nota

Todos os arquivos são montados/copiados para a mesma pasta de /App.

Consulte também