Middle
Je operácia DELETE idempotentná?
sobes.tech AI
Odpoveď od AI
Áno, tak je. Opakované vykonanie operácie DELETE s rovnakým URI povedie k rovnakému konečnému stavu zdroja — jeho neprítomnosti. Pri prvom požiadavke bude zdroj odstránený. Pri ďalších požiadavkách už zdroj nebude existovať, ale výsledok (neprítomnosť zdroja) zostane rovnaký.
// Príklad idempotentnej operácie DELETE s použitím 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}");
// Aj keď je zdroj už odstránený (napríklad, vracia 404 Not Found),
// konečný výsledok (neprítomnosť zdroja) bude rovnaký.
response.EnsureSuccessStatusCode(); // Môže vyvolať výnimku pre stavy mimo úspešných (2xx)
// Na kontrolu idempotentnosti je možné stavy spracovávať flexibilnejšie.
}
}