Entendendo os verbos HTTP no Laravel

Verbos HTTP nos proporcionam uma comunicação mais assertiva entre cliente e servidor.

Publicado em

Entender o funcionamento dos verbos HTTP nos possibilita criar aplicações mais robustas e fáceis de entender, já que cada operação em um CRUD, por exemplo, pode se comportar de diferentes formas.

O Laravel como qualquer outro framework e até mesmo as linguagens nativas, possuem suporte ao verbo HTTP. Nós podemos criar nosso próprio verbo e utilizar, mas isso está fora de questão, já que a comunidade adotou alguns padrões e são eles que vamos encontrar no nosso dia a dia.

O intuito aqui não é discorrer sobre API Rest, mas caso você não saiba o que é isso ou até mesmo não tenha familiaridade, recomendo se matricular no curso PHP - Criando e consumindo API RESTful que está disponível gratuitamente. Vamos entender como chamar os verbos e para o que cada um deles servem, simples assim.

No total temos oito métodos de requisições HTTP, mas em alguns softwares, como o Insomnia Rest, por exemplo, a gente só tem disponível seis.

Utilizando os verbos HTTP

No HTML só podemos utilizar dois verbos/métodos nos componentes de formulários, que são o post e o get. Quando utilizamos alguma API como a Fetch, Axios, entre outras, conseguimos passar o tipo de verbo na qual vamos enviar para o servidor.

No geral, utilizamos esses verbos quando estamos desenvolvendo uma aplicação Rest, normalmente o servidor devolve uma resposta com um código HTTP e seu conteúdo no formato Json.

Para definir o tipo de verbo em uma rota, basta especifica-lo após chamar o Route::, conforme mostra o código abaixo.

Route::prefix('verbos')->group(function () {
    Route::get('/', [VerbosController::class, 'get']);
    Route::post('/', [VerbosController::class, 'post']);
    Route::put('/', [VerbosController::class, 'put']);
    Route::delete('/', [VerbosController::class, 'delete']);
});

Perceba que todas as rotas apontam para verbos/, mas cada um utiliza um verbo e método diferente da classe VerbosController.

Seguindo a convenção, cada um dos verbos tem uma responsabilidade, que são elas:

  • Get - obtém uma determinada informação, quando chamado, a aplicação sempre vai buscar e devolver algo;
  • Post - definimos esse verbo quando a nossa intenção é enviar informações para o servidor a título de criar um novo registro;
  • Put - usamos o put quando enviamos todas as informações já existentes para o servidor a título de modifica-la. Em outra palavras, sempre que um update ou edição acontecer, é esse verbo de vamos utilizar.
  • Delete - o nome já deixa subjetivo a sua funcionalidade, mas não custa reforçar. Sempre que uma informação for deletada, é esse verbo que utilizamos;
  • Patch - tem uma funcionalidade muito parecida com o put, que também serve para alterar informações, mas o patch vai enviar apenas os dados que realmente foram modificados. Imagine que temos dois campos em um formulário, como nome e e-mail, porém apenas o nome foi alterado, então, utilizamos o patch enviando apenas o nome.

Abaixo observamos a controladora utilizada para receber as requisições definidas na rota acima.

<?php

namespace App\Http\Controllers;

class VerbosController extends Controller
{
    public function get()
    {
        return response()->json([
            'type' => 'get'
        ]);
    }

    public function post()
    {
        return response()->json([
            'type' => 'post'
        ]);
    }

    public function put()
    {
        return response()->json([
            'type' => 'put'
        ]);
    }

    public function delete()
    {
        return response()->json([
            'type' => 'delete'
        ]);
    }
}

Para executar o teste acima, desativamos o CSRF para as nossas rotas. Caso você também precise desativar, basta inserir o nome da rota no Middleware app\Http\Middleware\VerifyCsrfToken.php.

    protected $except = [
        //
        'verbos/'
    ];

Agora enviando uma requisição do tipo put, temos a seguinte mensagem de resposta.

Enviando requisição do tipo put para o Laravel.
Enviando requisição do tipo put para o Laravel.

E assim entendemos o que cada verbo quer dizer e como defini-los no Laravel.

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção