Sobes.tech
Middle

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

sobes.tech AI

Ҷавоб аз AI

Бале, ҳамин тавр аст. Иҷрои такрории амалиёти DELETE бо як URI-и ҳамон як ба ҳолати охиронии манбаъ — нобудии он — оварда мерасонад. Дар дархости аввал, манбаъ тоза мешавад. Дар дархостҳои баъдӣ, манбаъ аллакай вуҷуд надорад, аммо натиҷа (набудани манбаъ) ҳамон тавр боқӣ мемонад.

// Намунаи амалиёти DELETE идемпотент бо истифода аз 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}");
        // Ҳатто агар манбаъ аллакай тоза шуда бошад (масалан, 404 Not Found баргардонад),
        // натиҷаи охирӣ (набудани манбаъ) ҳамон тавр боқӣ мемонад.
        response.EnsureSuccessStatusCode(); // Метавонад истисно барорад барои статусҳои ғайри муваффақ (2xx)
                                            // Барои санҷиши идемпотентӣ, статусҳоро метавон боэътимодтар идора кард.
    }
}