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)
// Барои санҷиши идемпотентӣ, статусҳоро метавон боэътимодтар идора кард.
}
}