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