Realizando requisições DELETE com a função curl_init()

A função curl_init() da biblioteca cURL pode facilitar a transmissão de solicitações HTTP DELETE programaticamente, removendo um recurso de um servidor.

Miguel Oliveira

Miguel Oliveira

21 maio 2025

Realizando requisições DELETE com a função curl_init()

O projeto cURL, formalmente conhecido como "Cliente para URLs", oferece aos desenvolvedores um conjunto abrangente de funcionalidades para gerenciar transferências de dados. Ele opera em dois modos principais: uma interface de linha de comando voltada para o usuário para interações básicas e uma biblioteca robusta projetada para integração perfeita em projetos de desenvolvimento de software.

💡
Otimize seu design e teste da API cURL com Apidog, uma ferramenta abrangente de desenvolvimento de API para todo o ciclo de vida da API. Com o Apidog, você pode criar, depurar, simular e documentar APIs cURL dentro de um único aplicativo!

Para aprender quais funcionalidades o Apidog oferece, clique no botão abaixo!
botão

Definição Formal de curl_init()

Com base no site oficial do PHP, a função curl_init inicializa uma sessão cURL e retorna um identificador cURL para uso com as funções curl_setopt(), curl_exec() e curl_close().

Parâmetros Envolvidos

url

Se você fornecer uma URL, a opção CURLOPT_URL será definida como seu valor. Você também pode definir manualmente essa opção usando a função curl_setopt().

No entanto, observe que o protocolo file está desativado pelo próprio cURL se open_basedir tiver sido definido.

Valores de Retorno

A função curl_init() retorna um identificador cURL em caso de sucesso e false em caso de erros.

O que é uma Solicitação DELETE?

No contexto da web, uma solicitação DELETE é uma instrução específica enviada usando o Protocolo de Transferência de Hipertexto (HTTP) para um servidor. Ela instrui o servidor a remover ou excluir um recurso designado. Este recurso pode ser um arquivo, uma entrada de banco de dados ou qualquer outro dado que o servidor gerencia.

Como funcionam as Solicitações DELETE?

Aqui está uma descrição de como funcionam as solicitações DELETE:

Passo 1 - Cliente Inicia

Um cliente, como um navegador da web ou um aplicativo de software, envia a solicitação DELETE para o servidor.

Passo 2 - Recurso Especificado

A solicitação inclui um Identificador Uniforme de Recurso (URI) que aponta para o recurso exato no servidor que deve ser excluído.

Passo 3 - Ação do Servidor

Ao receber a solicitação DELETE, o servidor a processa e, se bem-sucedido, remove o recurso especificado.

Passo 4 - Resposta Enviada

O servidor então envia um código de resposta de volta ao cliente, indicando o resultado da tentativa de exclusão. Códigos de sucesso comuns incluem 200 (OK), 202 (Aceito) e 204 (Sem Conteúdo).

Pontos Notáveis sobre Solicitações DELETE

Idempotente

Enviar a mesma solicitação DELETE várias vezes deve ter o mesmo efeito (ou seja, excluir o recurso uma vez).

Não Garantido

Mesmo com um código de resposta bem-sucedido, a exclusão real pode não acontecer imediatamente devido à implementação ou políticas do servidor.

Exclusão Permanente

Ao contrário de algumas operações de edição, as solicitações DELETE geralmente resultam na remoção permanente do recurso.

Exemplos de Código para Fazer Solicitações DELETE com a Função curl_init()

Exemplo 1 - Solicitação DELETE Básica

<?php

$url = "https://api.example.com/resources/123"; // Substitua pela URL real

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  // Define o método de solicitação como DELETE
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    // Captura a resposta

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

if ($http_code == 200) {
  echo "Recurso excluído com sucesso!";
} else {
  echo "Erro ao excluir recurso: " . $http_code;
}

?>

Explicação do código:

  1. Definimos a URL de destino para a solicitação DELETE.
  2. curl_init($url) inicializa o identificador cURL.
  3. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE") define o método de solicitação como "DELETE".
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) garante que a resposta seja capturada como uma string.
  5. $response = curl_exec($ch) executa a solicitação DELETE e armazena a resposta.
  6. $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE) recupera o código de resposta HTTP.
  7. Fechamos o identificador cURL com curl_close($ch).
  8. O código verifica o código de resposta. Um 200 indica exclusão bem-sucedida.

Exemplo 2 - Solicitação DELETE com Autenticação

<?php

$url = "https://api.example.com/protected/resources/456"; // Substitua pela URL
$username = "seu_nome_de_usuario";
$password = "sua_senha";

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);  // Define credenciais

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

// ... (verifique o código de resposta e lide conforme necessário)

?>

Explicação do código:

  1. Definimos a URL e as credenciais de autenticação.
  2. A estrutura do código segue o exemplo anterior com linhas adicionais para autenticação.
  3. curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password) define o nome de usuário e a senha para autenticação básica.

Exemplo 3 - Solicitação DELETE com Payload JSON (Python)

import json
import curl

url = "https://api.example.com/data"
data = {"id": 789}  # Substitua pelos seus dados

headers = {"Content-Type": "application/json"}

response = curl.easy.request(
    url,
    custom_request="DELETE",
    data=json.dumps(data).encode("utf-8"),  # Codifica os dados como bytes JSON
    headers=headers
)

if response.status_code == 200:
    print("Recurso excluído com sucesso!")
else:
    print(f"Erro ao excluir recurso: {response.status_code}")

Explicação do código:

1. Importamos as bibliotecas necessárias e definimos a URL e o objeto de dados.

2. Definimos o cabeçalho Content-Type para indicar dados JSON.

3. curl.easy.request realiza a solicitação com os argumentos:

4. Verificamos o código de status da resposta para sucesso (200).

Nota para Lembrar

Por favor, certifique-se de que os exemplos de código acima não sejam copiados e colados em seus IDEs, pois são simplificados e exigirão mais modificações para atender às necessidades de sua aplicação.

Para a documentação oficial, você pode conferi-la em: https://www.php.net/manual/en/book.curl.php

Apidog - Projete a API cURL para a Perfeição

Se você está buscando uma solução refinada para um desenvolvimento eficiente de API, deve considerar experimentar Apidog - é uma plataforma de desenvolvimento de API que fornece aos desenvolvedores todas as ferramentas necessárias para todo o ciclo de vida da API.

interface do apidog
botão

Importar APIs cURL para o Apidog

importar curl apidog

O Apidog suporta usuários que desejam importar comandos cURL para o Apidog. Em um projeto vazio, clique no botão roxo + na parte superior esquerda da janela do Apidog e selecione Importar cURL.

exemplo de código curl stripe

Copie e cole o comando cURL na caixa exibida em sua tela.

sucesso na importação de código curl

Se bem-sucedido, você agora deve ser capaz de ver o comando cURL na forma de uma solicitação de API.

botão

Gerar Código PHP para API cURL com Apidog

Se você não tem experiência prévia em programação na linguagem PHP, não tema! O Apidog possui um recurso de geração de código em que você pode confiar, fornecendo estruturas de código para várias outras linguagens de programação.

gerar código cliente apidog

Primeiro, localize o botão </> Gerar Código em qualquer API ou solicitação e selecione Gerar Código Cliente na lista suspensa.

gerar código php apidog

Em seguida, selecione PHP e encontre a seção cURL. Você agora deve ver o código gerado para cURL. Tudo o que você precisa fazer é copiar e colar em seu IDE (Ambiente de Desenvolvimento Integrado) e continuar desenvolvendo sua aplicação.

botão

Conclusão

A função curl_init() dentro do cURL capacita os desenvolvedores com uma abordagem programática para exclusão de dados. Ao elaborar solicitações DELETE, recursos em servidores remotos podem ser eliminados diretamente de dentro das aplicações. Essa funcionalidade se revela inestimável para gerenciar ciclos de vida de dados, sincronizando informações entre sistemas e garantindo conformidade com regulamentos de governança de dados.

Além disso, o cURL oferece versatilidade na elaboração de solicitações DELETE. Desde operações básicas até aquelas que exigem autenticação ou payloads de dados complexos, a biblioteca fornece as ferramentas necessárias. Ao aproveitar as capacidades do cURL, os desenvolvedores podem obter controle preciso sobre a exclusão de dados dentro de suas soluções de software.

Pratique o design de API no Apidog

Descubra uma forma mais fácil de construir e usar APIs