Belgeleri oluşturma
Yeni bir öğe oluşturmak için önce C# kodunda Ürün türünde yeni bir değişken oluşturmamız gerekir.
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"
}
};
Microsoft.Azure.Cosmos türünde bir değişken olduğunu varsayalım.kapsayıcı adlı kapsayıcı.
Genel Ürün türünü ve yeni öğe değişkenini oluşturucuya geçirerek CreateItemAsync<> yöntemini zaman uyumsuz olarak çağırabiliriz.
await container.CreateItemAsync<Product>(saddle);
Yönteminin bu çağrılması yeni öğeyi oluşturur, ancak işlemin sonucuyla ilgili herhangi bir meta veriniz olmaz. Alternatif olarak, işlemin sonucunu ItemResponse<> türünde bir değişkende depolayabilirsiniz.
ItemResponse<Product> response = await container.CreateItemAsync<Product>(saddle);
HttpStatusCode status = response.StatusCode;
double requestUnits = response.RequestCharge;
Product item = response.Resource;
Try-catch bloğu kullanıyorsanız, HTTP durum kodu değerleri için StatusCodeözelliğini içeren CosmosException türünü işleyebilirsiniz. Uygulama kodunuzda dikkate almanız gereken birkaç yaygın HTTP durum kodu vardır:
Kod | Başlık | Nedeni |
---|---|---|
400 | Hatalı İstek | İsteğin gövdesindeki öğede bir sorun oluştu |
403 | Yasak | Kapsayıcı büyük olasılıkla doluydu |
409 | Çakışma | Kapsayıcıdaki öğenin büyük olasılıkla eşleşen bir kimliği vardır |
413 | RequestEntityTooLarge | Öğe maksimum varlık boyutunu aşıyor |
429 | TooManyRequests | Geçerli istek, kapsayıcı için sağlanan maksimum RU/sn sayısını aşıyor |
Bu örnekte
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
}