Middle
Is de DELETE-operatie idempotent?
sobes.tech AI
Antwoord van AI
Ja, dat klopt. Het herhaald uitvoeren van de DELETE-operatie met dezelfde URI leidt tot dezelfde eindtoestand van de bron — het ontbreken ervan. Bij de eerste aanvraag wordt de bron verwijderd. Bij volgende aanvragen bestaat de bron niet meer, maar blijft het resultaat (het ontbreken van de bron) hetzelfde.
// Voorbeeld van een idempotente DELETE-operatie met 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}");
// Zelfs als de bron al verwijderd is (bijvoorbeeld, retourneert 404 Not Found),
// blijft het eindresultaat (het ontbreken van de bron) hetzelfde.
response.EnsureSuccessStatusCode(); // Kan een uitzondering genereren voor niet-succesvolle statussen (2xx)
// Om de idempotentie te controleren, kunnen de statussen flexibeler worden afgehandeld.
}
}