Sobes.tech
Middle

A operação DELETE é idempotente?

sobes.tech IA

Resposta da IA

Sim, é. A execução múltipla da operação DELETE com a mesma URI levará ao mesmo estado final do recurso: sua ausência. No caso da primeira solicitação, o recurso será excluído. Em solicitações subsequentes, o recurso já não existirá, mas o resultado (ausência do recurso) permanecerá o mesmo.

// Exemplo de operação DELETE idempotente usando 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}");
        // Mesmo que o recurso já tenha sido excluído (por exemplo, retorna 404 Not Found),
        // o resultado final (ausência do recurso) será o mesmo.
        response.EnsureSuccessStatusCode(); // Pode lançar uma exceção para estados diferentes de bem-sucedidos (2xx)
                                            // Para verificar a idempotência, pode-se tratar os estados de forma mais flexível.
    }
}