Middle
Da li je operacija DELETE idempotentna?
sobes.tech АИ
Одговор од АИ
Da, tako je. Višestruko izvršavanje operacije DELETE s istim URI-jem dovest će do istog završnog stanja resursa — njegovog nedostatka. U prvom zahtevu, resurs će biti obrisan. U narednim zahtevima, resurs više neće postojati, ali rezultat (nedostatak resursa) će ostati isti.
// Primer idempotentne DELETE operacije koristeći 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}");
// Čak i ako je resurs već obrisan (npr. vraća 404 Not Found),
// krajnji rezultat (nedostatak resursa) biće isti.
response.EnsureSuccessStatusCode(); // Može baciti izuzetak za statuse različite od uspešnih (2xx)
// Za proveru idempotentnosti, statusi se mogu obrađivati fleksibilnije.
}
}