Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Data API builder (DAB) kullanarak NoSQL için yerel Azure Cosmos DB öykünücüsü için GraphQL uç noktaları oluşturacaksınız.
Uyarı
Veri API oluşturucusunda NoSQL için Azure Cosmos DB yalnızca GraphQL uç noktalarını destekler. REST uç noktaları bu veritabanı türü için kullanılamaz.
Önkoşullar
Veri API'sini oluşturucu CLI'yi yükleme
NuGet'ten Microsoft.DataApiBuilder paketini .NET aracı olarak yükleyin.
En son sürümünü
dotnet tool installbağımsız değişkeniyle yüklemek içinMicrosoft.DataApiBuilderöğesini--globalkullanın.dotnet tool install --global Microsoft.DataApiBuilderUyarı
Paket zaten yüklüyse, yerine kullanarak
dotnet tool updatepaketi güncelleştirin.dotnet tool update --global Microsoft.DataApiBuilderdotnet tool listaracının,--globalbağımsız değişkeniyle yüklü olduğunu doğrulayın.dotnet tool list --global
Emülatör görüntüsünü çekin
NoSQL öykünücüsü için Azure Cosmos DB görüntüsünü indirin. Öykünücü görüntüsü büyük olduğundan bu indirme işlemi birkaç dakika sürebilir.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Öykünücüyü başlat
Docker'da Cosmos DB öykünücüsü çalıştırın. Öykünücünün ağ uç noktalarını 127.0.0.1 olarak tanıtması ve onların ana makinenizden ulaşılabilir olmasını sağlamak için AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE ayarı gereklidir.
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
Uyarı
Öykünücü, 11 iç bölmeyi başlatır ve hazır hale gelmesi 30 ile 60 saniye arasında sürebilir. Tarayıcınızda açarak https://localhost:8081/_explorer/index.html çalıştığını doğrulayabilirsiniz. Tarayıcınız otomatik olarak imzalanan sertifika hakkında uyarı verebilir; devam etmek güvenlidir.
Öykünücü sertifikasını yükleyin
Cosmos DB öykünücüsü otomatik olarak imzalanan bir SSL sertifikası kullanır. Veri API oluşturucu emülatöre bağlanabilsin diye bu sertifikayı indirip güvenin.
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Veritabanı ve tohum verilerini oluşturma
Bir veritabanı, kapsayıcı ve örnek öğeler oluşturmak için öykünücünün yerleşik Veri Gezgini'ni kullanın. Ek araç gerekmez; Veri Gezgini öykünücünün bir parçası olarak tarayıcınızda çalışır.
Veri Gezgini'ni adresinde
https://localhost:8081/_explorer/index.htmlaçın.Yeni Veritabanı'ı seçin. Veritabanı kimliği olarak todos girin ve Tamam'ı seçin.
Todos veritabanını genişletin, üç nokta (...) menüsünü seçin ve Yeni Kapsayıcı'yı seçin. Kapsayıcı kimliği olarak todos ve bölüm anahtarı olarak /id girin, ardından Tamam'ı seçin.
Todos kapsayıcısını genişletin ve Öğeler'i seçin. Ardından Yeni Öğe'yi seçin, varsayılan JSON değerini aşağıdaki içerikle değiştirin ve Kaydet'i seçin. Her öğe için yineleyin.
Öğe 1:
{ "id": "1", "title": "Walk the dog", "completed": false }Öğe 2:
{ "id": "2", "title": "Feed the fish", "completed": false }Öğe 3:
{ "id": "3", "title": "Comb the cat", "completed": true }
GraphQL şema dosyası oluşturma
NoSQL için Azure Cosmos DB bir GraphQL şema dosyası gerektirir. Aşağıdaki içeriğe sahip adlı schema.gql bir dosya oluşturun.
type Todo @model {
id: ID!
title: String!
completed: Boolean!
}
Veri API'si oluşturucusunu yapılandırma
Öykünücünün varsayılan bağlantı dizesiyle yapılandırmayı başlatın.
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=="Todo varlığını ekleyin.
dab add Todo --source "todos" --permissions "anonymous:*"
Dosyanız dab-config.json artık aşağıdaki örneğe benzer görünmelidir:
{
"$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": [
"*"
]
}
]
}
}
}
Tavsiye
dab init ve dab add komutlarını atlayabilir ve dab-config.json ve schema.gql dosyalarını burada gösterilen içerikle doğrudan oluşturabilirsiniz.
API'yi başlatma
Aracı çalıştırmak ve varlığınız için API uç noktaları oluşturmak için kullanın dab start .
dab start
Çıktı, çalışan API'nin adresini içermelidir.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Tavsiye
Bu örnekte, uygulama localhost numaralı bağlantı noktasında çalışıyor. Çalışan uygulamanızın farklı bir adresi ve bağlantı noktası olabilir.
API’yi test etme
Tarayıcınızı açın ve GraphQL uç noktasına gidin.
http://localhost:5000/graphqlGeliştirme modunda, bu URL Nitro GraphQL IDE'yi açar.
Yeni bir belge oluşturun ve tüm yapılacaklar öğelerini almak için aşağıdaki sorguyu çalıştırın.
query { todos { items { id title completed } } }Yanıt üç yapılacaklar öğesini de içermelidir.
{ "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 } ] } } }
Temizleme
İşiniz bittiğinde Docker kapsayıcısını durdurun ve kaldırın.
docker stop dab-cosmos && docker rm dab-cosmos