Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
** Dalam panduan cepat ini, Anda membuat endpoint GraphQL untuk emulator lokal Azure Cosmos DB for NoSQL menggunakan penyusun API Data (DAB).
Nota
Azure Cosmos DB for NoSQL di Data API builder hanya mendukung endpoint GraphQL. Titik akhir REST tidak tersedia untuk jenis database ini.
Prasyarat
Menginstal pembangun API Data CLI
Instal paket Microsoft.DataApiBuilder dari NuGet sebagai alat .NET.
Gunakan
dotnet tool installuntuk menginstal versi terbaru dariMicrosoft.DataApiBuilderdengan argumen--global.dotnet tool install --global Microsoft.DataApiBuilderNota
Jika paket sudah diinstal, perbarui paket sebagai gantinya menggunakan
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderVerifikasi bahwa alat diinstal dengan
dotnet tool listmenggunakan argumen--global.dotnet tool list --global
Menarik gambar emulator
Unduh gambar emulator Azure Cosmos DB for NoSQL. Pengunduhan ini dapat memakan waktu beberapa menit karena gambar emulator besar.
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest
Memulai emulator
Jalankan emulator Cosmos DB di Docker. Pengaturan AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE diperlukan agar emulator mengumumkan 127.0.0.1 untuk titik akhir jaringannya, membuatnya dapat dijangkau dari mesin host Anda.
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
Nota
Emulator memulai 11 partisi internal dan dapat memakan waktu 30 hingga 60 detik untuk menjadi siap. Anda dapat memverifikasinya berjalan dengan membuka https://localhost:8081/_explorer/index.html di browser Anda. Browser Anda mungkin memperingatkan tentang sertifikat yang ditandatangani sendiri—aman untuk melanjutkan.
Menginstal sertifikat emulator
Emulator Cosmos DB menggunakan sertifikat SSL yang ditandatangani sendiri. Unduh dan percayai sertifikat ini sehingga penyusun API Data dapat terhubung ke emulator.
curl -k https://localhost:8081/_explorer/emulator.pem > ~/emulatorcert.crt
sudo cp ~/emulatorcert.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Membuat database dan data benih
Gunakan Data Explorer bawaan emulator untuk membuat database, kontainer, dan item sampel. Tidak diperlukan alat tambahan—Data Explorer berjalan di browser Anda sebagai bagian dari emulator.
Buka Data Explorer di
https://localhost:8081/_explorer/index.html.Pilih Database Baru. Masukkan todos sebagai id database dan pilih OK.
Perluas database todos , pilih menu elipsis (...), dan pilih Kontainer Baru. Masukkan todos sebagai id kontainer dan /id sebagai kunci partisi, lalu pilih OK.
Perluas kontainer todos dan pilih Item. Lalu pilih Item Baru, ganti JSON default dengan konten berikut, dan pilih Simpan. Ulangi untuk setiap item.
Item 1:
{ "id": "1", "title": "Walk the dog", "completed": false }Item 2:
{ "id": "2", "title": "Feed the fish", "completed": false }Item 3:
{ "id": "3", "title": "Comb the cat", "completed": true }
Membuat file skema GraphQL
Azure Cosmos DB for NoSQL memerlukan file skema GraphQL. Buat file bernama schema.gql dengan konten berikut.
type Todo @model {
id: ID!
title: String!
completed: Boolean!
}
Mengonfigurasi pembuat API Data
Inisialisasi konfigurasi dengan string koneksi default emulator.
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=="Tambahkan entitas Todo .
dab add Todo --source "todos" --permissions "anonymous:*"
File Anda dab-config.json sekarang akan terlihat mirip dengan contoh berikut:
{
"$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": [
"*"
]
}
]
}
}
}
Petunjuk / Saran
Anda dapat melewati perintah dab init dan dab add dan langsung membuat file dab-config.json dan schema.gql dengan konten yang ditampilkan di sini.
Mulai API
Gunakan dab start untuk menjalankan alat dan membuat titik akhir API untuk entitas Anda.
dab start
Output harus menyertakan alamat API yang sedang berjalan.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Petunjuk / Saran
Dalam contoh ini, aplikasi berjalan pada localhost port 5000. Aplikasi anda yang sedang berjalan mungkin memiliki alamat dan port yang berbeda.
Menguji API
Buka browser Anda dan navigasikan ke titik akhir GraphQL.
http://localhost:5000/graphqlDalam mode Pengembangan, URL ini membuka IDE Nitro GraphQL.
Buat dokumen baru dan jalankan kueri berikut untuk mengambil semua item todo.
query { todos { items { id title completed } } }Respons harus mencakup ketiga item todo.
{ "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 } ] } } }
Pembersihan
Hentikan dan hapus kontainer Docker setelah Selesai.
docker stop dab-cosmos && docker rm dab-cosmos