Sobes.tech
Middle

Ist die DELETE-Operation idempotent?

sobes.tech KI

Antwort von AI

Ja, das ist der Fall. Mehrfache Ausführung der DELETE-Operation mit derselben URI führt zum gleichen Endzustand der Ressource – ihrer Abwesenheit. Bei der ersten Anfrage wird die Ressource gelöscht. Bei nachfolgenden Anfragen existiert die Ressource nicht mehr, aber das Ergebnis (Fehlen der Ressource) bleibt gleich.

// Beispiel für eine idempotente DELETE-Operation mit 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}");
        // Auch wenn die Ressource bereits gelöscht wurde (z.B. Rückgabe 404 Not Found),
        // bleibt das Endergebnis (Fehlen der Ressource) dasselbe.
        response.EnsureSuccessStatusCode(); // Kann eine Ausnahme für Statuscodes außer Erfolg (2xx) auslösen
                                            // Zur Überprüfung der Idempotenz können die Statuscodes flexibler behandelt werden.
    }
}