Middle
Дали операцията DELETE е идемпотентна?
sobes.tech AI
Отговор от AI
Да, това е така. Многократното изпълнение на операцията DELETE с един и същи URI ще доведе до същото крайно състояние на ресурса — неговото отсъствие. При първия заявка ресурсът ще бъде изтрит. При последващите заявки ресурсът вече няма да съществува, но резултатът (липсата на ресурса) ще остане същият.
// Пример за идемпотентна операция DELETE с използване на HttpClient
using System.Net.Http;
using System.Threading.Tasks;
public class ResourceServiceClient
{
private readonly HttpClient _httpClient;
public ResourceServiceClient(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task DeleteResourceAsync(int resourceId)
{
var response = await _httpClient.DeleteAsync($"api/resources/{resourceId}");
// Дори ако ресурсът вече е изтрит (например, връща 404 Not Found),
// крайният резултат (липсата на ресурса) ще бъде същият.
response.EnsureSuccessStatusCode(); // Може да изхвърли изключение за статуси, различни от успешните (2xx)
// За проверка на идемпотентността, статусите могат да се обработват по-гъвкаво.
}
}