Sobes.tech
Middle

DELETE əməliyyatı idempotentdirmi?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, doğrudur. Eyni URI ilə çoxsaylı DELETE əməliyyatının icrası, resursun son vəziyyətinə — onun olmamasına gətirib çıxaracaq. İlk sorğuda resurs silinəcək. Növbəti sorğularda resurs artıq mövcud olmayacaq, lakin nəticə (resursun olmaması) eyni qalacaq.

// HttpClient istifadə edərək idempotent DELETE əməliyyatının nümunəsi
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}");
        // Hətta resurs artıq silinmiş olsa (məsələn, 404 Not Found qaytarırsa),
        // son nəticə (resursun olmaması) eyni olacaq.
        response.EnsureSuccessStatusCode(); // Uğursuz statuslar üçün istisna ata bilər (2xx xaricində)
                                            // Idempotentliyi yoxlamaq üçün statuslar daha elastik şəkildə idarə oluna bilər.
    }
}