Schnellstart: Verwenden des Daten-API-Generators mit NoSQL
In dieser Schnellstartanleitung erstellen Sie eine Reihe von Daten-API-Konfigurationsdateien für den Azure Cosmos DB for NoSQL-Emulator.
Voraussetzungen
- Docker
- .NET 8
- Ein Datenverwaltungsclient
- Wenn Sie keinen Client installiert haben, installieren Sie Azure Data Studio.
Tipp
Alternativ können Sie diese Schnellstartanleitung in GitHub Codespaces mit allen bereits installierten Entwicklervoraussetzungen öffnen. Bringen Sie einfach Ihr eigenes Azure-Abonnement mit. GitHub-Konten enthalten eine Berechtigung für Speicher und Kernstunden ohne Kosten. Weitere Informationen finden Sie unter Enthaltene Speicher- und Kernstunden für GitHub-Konten.
Installieren der Daten-API-Generator-CLI
Installieren Sie das Microsoft.DataApiBuilder
Paket aus NuGet als .NET-Tool.
Verwenden Sie
dotnet tool install
, um die neueste Version vonMicrosoft.DataApiBuilder
mit dem--global
-Argument zu installieren.dotnet tool install --global Microsoft.DataApiBuilder
Hinweis
Wenn das Paket bereits installiert ist, aktualisieren Sie das Paket stattdessen mithilfe von
dotnet tool update
.dotnet tool update --global Microsoft.DataApiBuilder
Vergewissern Sie sich, dass das Tool mit
dotnet tool list
installiert ist, indem Sie das--global
-Argument verwenden.dotnet tool list --global
Konfigurieren der lokalen Datenbank
Führen Sie zunächst den lokalen Emulator aus. Anschließend können Sie ein Seeding für einen neuen Container mit Beispieldaten durchführen.
Rufen Sie die neueste Kopie des
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Containerimages von Docker Hub ab.docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Starten Sie den Docker-Container, indem Sie Port 8081 und den Portbereich 10250-10255 veröffentlichen.
docker run \ --publish 8081:8081 \ --publish 10250-10255:10250-10255 \ --detach \ mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Herunterladen des selbstsignierten Zertifikats für den Emulator
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
Installieren Sie das selbstsignierte Zertifikat entweder mithilfe der Bash-Schritte für Linux oder der PowerShell-Schritte für Windows.
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
certutil -f -addstore "Root" emulatorcert.crt
Stellen Sie mithilfe Ihrer bevorzugten Datenverwaltungsumgebung eine Verbindung mit Ihrer lokalen Datenbank her. Beispiele sind, sind jedoch nicht beschränkt auf: Azure Data Studio und die Azure Databases-Erweiterung für Visual Studio Code.
Tipp
Die Standard-Verbindungszeichenfolge für den Emulator ist
AccountEndpoint=https://localhost:8081;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;
.Create eine neue Datenbank und
authors
einen neuenbookshelf
Container.Seeding des Containers mit diesen grundlegenden JSON-Daten.
[ { "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" } ]
Tipp
Die Methode, die zum Seeden von Daten verwendet wird, hängt weitgehend vom Datenverwaltungstool ab. Für Azure Data Studio können Sie dieses JSON-Array als .json-Datei speichern und dann die Importfunktion verwenden.
Erstellen von Konfigurationsdateien
Create eine Baselinekonfigurationsdatei mithilfe der DAB CLI. Fügen Sie dann eine Entwicklungskonfigurationsdatei mit Ihren aktuellen Anmeldeinformationen hinzu.
Create eine neue Datei namens schema.graphql mit diesem Schemainhalt.
type Author @model { id: ID! firstName: String! middleName: String lastName: String! }
Create eine typische Konfigurationsdatei mit
dab init
. Fügen Sie das--connection-string
Argument mit dem Standard-Verbindungszeichenfolge des Emulators hinzu.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==;"
Fügen Sie mithilfe
dab add
von eine Author-Entität hinzu.dab add Author --source "authors" --permissions "anonymous:*"
Testen der API mit der lokalen Datenbank
Starten Sie nun das Daten-API-Generatortool, um zu überprüfen, ob Ihre Konfigurationsdateien während der Entwicklung zusammengeführt werden.
Verwenden Sie
dab start
, um das Tool auszuführen und API-Endpunkte für Ihre Entität zu erstellen.dab start
Die Ausgabe des Tools sollte die Adresse enthalten, die zum Navigieren zur ausgeführten API verwendet werden soll.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tipp
In diesem Beispiel wird die Anwendung an
localhost
Port 5000 ausgeführt. Ihre ausgeführte Anwendung verfügt möglicherweise über eine andere Adresse und einen anderen Port.Navigieren Sie zum GraphQL Endpunkt, indem Sie zu
/graphql
navigieren und diesen Vorgang ausführen.query { authors { items { id firstName lastName } } }
Tipp
In diesem Beispiel lautet
https://localhost:5000/graphql
die URL . Sie können mit Ihrem Webbrowser zu dieser URL navigieren.