Inicio rápido: Uso del generador de API de datos con NoSQL
En este inicio rápido, creará un conjunto de archivos de configuración de Data API Builder para dirigirse al emulador de Azure Cosmos DB para NoSQL.
Requisitos previos
- Docker
- .NET 8
- Un cliente de administración de datos
- Si no tiene instalado un cliente, instale Azure Data Studio.
Sugerencia
Como alternativa, abra este inicio rápido en GitHub Codespaces con todos los requisitos previos para desarrolladores ya instalados. Basta con traer su propia suscripción de Azure. Las cuentas de GitHub incluyen un derecho de almacenamiento y horas básicas sin costo alguno. Para más información, consulte horas de almacenamiento y núcleo incluidas para las cuentas de GitHub.
Instalación de la CLI de Data API Builder
Instale el Microsoft.DataApiBuilder
paquete desde NuGet como una herramienta de .NET.
Use
dotnet tool install
para instalar la versión más reciente deMicrosoft.DataApiBuilder
con el--global
argumento .dotnet tool install --global Microsoft.DataApiBuilder
Nota
Si el paquete ya está instalado, actualizará el paquete en su lugar mediante
dotnet tool update
.dotnet tool update --global Microsoft.DataApiBuilder
Compruebe que la herramienta está instalada con
dotnet tool list
el--global
argumento .dotnet tool list --global
Configuración de la base de datos local
Para empezar, ejecute el emulador local. A continuación, puede inicializar un nuevo contenedor con datos de ejemplo.
Obtenga la copia más reciente de la
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
imagen de contenedor de Docker Hub.docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Inicie el contenedor de Docker publicando el puerto 8081 y el intervalo de puertos 10250-10255.
docker run \ --publish 8081:8081 \ --publish 10250-10255:10250-10255 \ --detach \ mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Descarga del certificado autofirmado para el emulador
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
Instale el certificado autofirmado mediante los pasos de Bash para Linux o los pasos de PowerShell para Windows.
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
certutil -f -addstore "Root" emulatorcert.crt
Conéctese a la base de datos local mediante el entorno de administración de datos preferido. Entre los ejemplos se incluyen, entre otros: Azure Data Studio y la extensión Azure Databases para Visual Studio Code.
Sugerencia
El cadena de conexión predeterminado para el emulador es
AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;
.Create una nueva
bookshelf
base de datos yauthors
un contenedor.Inicializar el contenedor con estos datos JSON básicos.
[ { "id": "01", "firstName": "Henry", "lastName": "Ross" }, { "id": "02", "firstName": "Jacob", "middleName": "A.", "lastName": "Hancock" }, { "id": "03", "firstName": "Sydney", "lastName": "Mattos" }, { "id": "04", "firstName": "Jordan", "lastName": "Mitchell" }, { "id": "05", "firstName": "Victoria", "lastName": "Burke" }, { "id": "06", "firstName": "Vance", "lastName": "DeLeon" }, { "id": "07", "firstName": "Reed", "lastName": "Flores" }, { "id": "08", "firstName": "Felix", "lastName": "Henderson" }, { "id": "09", "firstName": "Avery", "lastName": "Howard" }, { "id": "10", "firstName": "Violet", "lastName": "Martinez" } ]
Sugerencia
El método usado para inicializar datos dependerá en gran medida de la herramienta de administración de datos. Para Azure Data Studio, puede guardar esta matriz JSON como un archivo .json y, a continuación, usar la característica Importar .
Creación de archivos de configuración
Create un archivo de configuración de línea base mediante la CLI de DAB. A continuación, agregue un archivo de configuración de desarrollo con las credenciales actuales.
Create un nuevo archivo denominado schema.graphql con este contenido de esquema.
type Author @model { id: ID! firstName: String! middleName: String lastName: String! }
Create un archivo de configuración típico mediante
dab init
. Agregue el argumento con el--connection-string
cadena de conexión predeterminado del emulador.dab init --database-type "cosmosdb_nosql" --host-mode "Development" --cosmosdb_nosql-database bookshelf --graphql-schema schema.graphql --connection-string "AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;"
Agregue una entidad Author mediante
dab add
.dab add Author --source "authors" --permissions "anonymous:*"
API de prueba con la base de datos local
Ahora, inicie la herramienta Generador de API de datos para validar que los archivos de configuración se combinan durante el desarrollo.
Use
dab start
para ejecutar la herramienta y crear puntos de conexión de API para la entidad.dab start
La salida de la herramienta debe incluir la dirección que se usará para navegar a la API en ejecución.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Sugerencia
En este ejemplo, la aplicación se ejecuta en
localhost
en el puerto 5000. La aplicación en ejecución puede tener una dirección y un puerto diferentes.Vaya al punto de conexión de GraphQL; para ello, vaya a
/graphql
y ejecute esta operación.query { authors { items { id firstName lastName } } }
Sugerencia
En este ejemplo, la dirección URL sería
https://localhost:5000/graphql
. Puede navegar a esta dirección URL mediante el explorador web.