Sobes.tech
Middle

DELETE операциясы идемпотентпи?

sobes.tech AI

AIден жооп

Ооба, ошондой. Бир URI менен DELETE операциясын көп жолу аткаруу ошол эле ресурстун акыркы абалына — анын жоктугуна алып келет. Биринчи суроо боюнча ресурс өчүрүлөт. Кийинки суроолордо ресурс дагы деле жок болот, бирок натыйжа (ресурстун жоктугу) ошол бойдон калат.

// HttpClient колдонуу менен идемпотенттүү DELETE операциясынын мисалы
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}");
        // Эгер ресурстун алгачкы эле өчүрүлгөн болсо (мисалы, 404 Not Found кайтарат),
        // акыркы натыйжа (ресурстун жоктугу) ошол бойдон калат.
        response.EnsureSuccessStatusCode(); // 2xx эмес статустар үчүн исключение чыгара алат
                                            // Идемпотенттикти текшерүү үчүн статустарды көбүрөөк ийкемдүү иштетсе болот.
    }
}