Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu vytvoříte koncové body GraphQL pro místní emulátor Azure Cosmos DB for NoSQL pomocí Tvůrce rozhraní Data API (DAB).
Poznámka:
Azure Cosmos DB for NoSQL v Tvůrci rozhraní Data API podporuje pouze koncové body GraphQL. Koncové body REST nejsou pro tento typ databáze dostupné.
Předpoklady
Instalovat Data API builder CLI
Nainstalujte balíček Microsoft.DataApiBuilder z NuGetu jako nástroj .NET.
Použijte
dotnet tool installk instalaci nejnovější verzeMicrosoft.DataApiBuilders argumentem--global.dotnet tool install --global Microsoft.DataApiBuilderPoznámka:
Pokud je balíček již nainstalován, aktualizujte balíček místo toho pomocí
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderPomocí argumentu
dotnet tool listověřte, že je nástroj nainstalovaný--global.dotnet tool list --global
Stáhnout image emulátoru
Stáhněte si image emulátoru Azure Cosmos DB for NoSQL. Stažení může trvat několik minut, protože image emulátoru je velká.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Spusťte emulátor.
Spusťte emulátor cosmos DB v Dockeru. Nastavení AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE je vyžadováno, aby emulátor ohlašoval 127.0.0.1 své koncové body sítě a zviditelňuje je pro hostitelský počítač.
docker run --name dab-cosmos --publish 8081:8081 --publish 10250-10255:10250-10255 --env AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=127.0.0.1 --detach mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Poznámka:
Emulátor spustí 11 interních oddílů a může být připraven během 30 až 60 sekund. Můžete ověřit, že je spuštěný, tím, že otevřete https://localhost:8081/_explorer/index.html ve svém prohlížeči. Váš prohlížeč může upozornit na certifikát podepsaný svým držitelem – je bezpečné pokračovat.
Instalace certifikátu emulátoru
Emulátor služby Cosmos DB používá certifikát SSL podepsaný svým držitelem. Stáhněte a důvěřujte tomuto certifikátu, aby se nástroj Data API mohl připojit k emulátoru.
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Vytvoření databáze a počátečních dat
Pomocí integrovaného Průzkumníka dat emulátoru můžete vytvořit databázi, kontejner a ukázkové položky. Nejsou potřeba žádné další nástroje – Průzkumník dat běží v prohlížeči jako součást emulátoru.
Otevřete Průzkumníka dat na adrese
https://localhost:8081/_explorer/index.html.Vyberte Novou databázi. Jako ID databáze zadejte todos a vyberte OK.
Rozbalte databázi todos , vyberte nabídku se třemi tečkou (...) a zvolte Nový kontejner. Zadejte todos jako ID kontejneru a /id jako klíč oddílu a pak vyberte OK.
Rozbalte kontejner todos a vyberte Položky. Pak vyberte Nová položka, nahraďte výchozí JSON následujícím obsahem a vyberte Uložit. Opakujte pro každou položku.
Položka 1:
{ "id": "1", "title": "Walk the dog", "completed": false }Položka 2:
{ "id": "2", "title": "Feed the fish", "completed": false }Položka 3:
{ "id": "3", "title": "Comb the cat", "completed": true }
Vytvoření souboru schématu GraphQL
Azure Cosmos DB for NoSQL vyžaduje soubor schématu GraphQL. Vytvořte soubor s názvem schema.gql s následujícím obsahem.
type Todo @model {
id: ID!
title: String!
completed: Boolean!
}
Konfigurace tvůrce rozhraní Data API
Inicializuje konfiguraci pomocí výchozího připojovacího řetězce emulátoru.
dab init --database-type "cosmosdb_nosql" --host-mode "Development" --cosmosdb_nosql-database todos --graphql-schema schema.gql --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="Přidejte entitu Todo .
dab add Todo --source "todos" --permissions "anonymous:*"
Soubor dab-config.json by teď měl vypadat podobně jako v následujícím příkladu:
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
"options": {
"database": "todos",
"schema": "schema.gql"
}
},
"runtime": {
"graphql": {
"enabled": true
},
"host": {
"mode": "development"
}
},
"entities": {
"Todo": {
"source": {
"object": "todos",
"type": "table"
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
]
}
}
}
Návod
Můžete přeskočit příkazy dab init a dab add a vytvořit dab-config.json a schema.gql soubory přímo s obsahem zde zobrazeným.
Spuštění rozhraní API
Slouží dab start ke spuštění nástroje a vytvoření koncových bodů rozhraní API pro vaši entitu.
dab start
Výstup by měl obsahovat adresu spuštěného rozhraní API.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Návod
V tomto příkladu aplikace běží na localhost portu 5000. Spuštěná aplikace může mít jinou adresu a port.
Testování rozhraní API
Otevřete prohlížeč a přejděte do koncového bodu GraphQL.
http://localhost:5000/graphqlV režimu vývoje tato adresa URL otevře rozhraní IDE Nitro GraphQL.
Vytvořte nový dokument a spuštěním následujícího dotazu načtěte všechny položky úkolů.
query { todos { items { id title completed } } }Odpověď by měla obsahovat všechny tři položky úkolů.
{ "data": { "todos": { "items": [ { "id": "1", "title": "Walk the dog", "completed": false }, { "id": "2", "title": "Feed the fish", "completed": false }, { "id": "3", "title": "Comb the cat", "completed": true } ] } } }
Vyčištění
Až budete hotovi, zastavte a odeberte kontejner Dockeru.
docker stop dab-cosmos && docker rm dab-cosmos