Sobes.tech
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.
    }
}