Middle
Vai DELETE operācija ir idempotenta?
sobes.tech AI
Atbilde no AI
Jā, tas ir pareizi. Daudzreizēja DELETE operācijas izpilde ar to pašu URI novedīs pie tāda paša galīgā stāvokļa — resursa neesamības. Pirmās pieprasījuma laikā resursu izdzēsīs. Nākamajos pieprasījumos resursu jau nebūs, bet rezultāts (resursa neesamība) paliks tas pats.
// Idempotentas DELETE operācijas piemērs, izmantojot 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}");
// Pat ja resursu jau ir izdzēsis (piemēram, atgriež 404 Not Found),
// galīgais rezultāts (resursa neesamība) būs tas pats.
response.EnsureSuccessStatusCode(); // Var izraisīt izņēmumu, ja statuss ir neveiksmīgs (2xx)
// Idempotences pārbaudei var apstrādāt statusus elastīgāk.
}
}