Sobes.tech
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.
    }
}