Compartilhar via


Adicionar mais de uma fonte de dados

O construtor de API de Dados dá suporte a pontos de extremidade híbridos por meio do uso de arquivos de fonte de dados, permitindo que você defina várias fontes de dados e suas entidades em arquivos de configuração separados.

Isso é útil quando:

  • Você precisa expor entidades de mais de um banco de dados
  • Você deseja organizar configurações modularmente
  • Você precisa gerenciar diferentes back-ends de dados de forma independente

Structure

Para definir várias fontes de dados, crie vários arquivos de configuração e referencie-os data-source-files na matriz da configuração de nível superior.

Top-level file

{
  "data-source-files": [
    "dab-config-sql.json",
    "dab-config-cosmos.json"
  ],
  "runtime": {
    "rest": {
      "enabled": true
    }
  }
}

Arquivo filho: dab-config-sql.json

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  },
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Arquivo filho: dab-config-cosmos.json

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "connection-string": "@env('COSMOS_CONNECTION_STRING')",
    "database-name": "library"
  },
  "entities": {
    "LoanRecord": {
      "source": {
        "object": "LoanRecords"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Behavior

  • Somente as configurações do runtime arquivo de nível superior são respeitadas
  • Cada arquivo filho deve conter um e entities uma data-source seção
  • Os nomes de entidade devem ser globalmente exclusivos em todos os arquivos
  • Entidades definidas em arquivos separados não podem referenciar umas às outras por meio de relações
  • Os arquivos podem ser aninhados em subpastas, conforme necessário

Benefits

  • Separação limpa da configuração por back-end
  • Habilita APIs escalonáveis de vários bancos de dados
  • Simplifica a manutenção para sistemas complexos

Limitations

  • Nenhuma relação entre arquivos de configuração
  • Referências de arquivo circular não são permitidas
  • Somente o comportamento de runtime dos controles de arquivo de nível superior