Membuat dokumen
Untuk membuat item baru, pertama-tama kita harus membuat variabel baru dalam kode C# jenis Produk.
Product saddle = new()
{
id = "027D0B9A-F9D9-4C96-8213-C8546C4AAE71",
categoryId = "26C74104-40BC-4541-8EF5-9892F7F03D72",
name = "LL Road Seat/Saddle",
price = 27.12d,
tags = new string[]
{
"brown",
"weathered"
}
};
Mari kita simpulkan bahwa sudah ada variabel jenis Microsoft.Azure.Cosmos.Container bernama container.
Kita dapat secara asinkron memanggil metode CreateItemAsync<> yang meneruskan jenis Produk dan variabel item baru ke dalam konstruktor.
await container.CreateItemAsync<Product>(saddle);
Pemanggilan metode ini membuat item baru, tetapi tidak memiliki metadata tentang hasil operasi. Atau, Anda dapat menyimpan hasil operasi dalam variabel berjenis ItemResponse<>.
ItemResponse<Product> response = await container.CreateItemAsync<Product>(saddle);
HttpStatusCode status = response.StatusCode;
double requestUnits = response.RequestCharge;
Product item = response.Resource;
Jika Anda menggunakan blok try-catch, Anda dapat menangani jenis CosmosException , yang menyertakan properti StatusCode untuk nilai kode status HTTP. Ada beberapa kode status HTTP umum yang harus Anda pertimbangkan dalam kode aplikasi Anda:
Kode | Judul | Alasan |
---|---|---|
400 | Permintaan Buruk | Ada yang salah dengan item di isi permintaan |
403 | Terlarang | Kontainer kemungkinan penuh |
409 | Konflik | Item dalam kontainer kemungkinan sudah memiliki id yang cocok |
413 | RequestEntityTooLarge | Item melebihi ukuran entitas maks |
429 | TooManyRequests | Permintaan saat ini melebihi RU/dtk maksimum yang disediakan untuk kontainer |
Dalam contoh ini
try
{
await container.CreateItemAsync<Product>(saddle);
}
catch(CosmosException ex) when (ex.StatusCode == HttpStatusCode.Conflict)
{
// Add logic to handle conflicting ids
}
catch(CosmosException ex)
{
// Add general exception handling logic
}