DEV Community

Lucien Risso Correia
Lucien Risso Correia

Posted on

Laravel - Parte 2

Chegamos aos controladores da aplicação, que no artigo anterior seriam os próximos logo após da rota. Recapitulando: a aplicação recebe a chamada HTTP, leva pra rotas pra verificar para onde vai esse requisição e no caso atual ele vai ir para algum controller. Os controllers podem chamar classes e métodos de muitos lugares dependendo do tamanho e do design da aplicação, como por exemplo QueryBuilders, UseCases, Services, Repositories entre outros.

Mas ainda não chegamos ao ponto de utilizar esses designs, vamos somente seguir o fluxo simples da requisição. Dentro do método do controller podemos literalmente colocar qualquer coisa e até mesmo nem dar retorno :), mas vou dar um exemplo mais decente:

    public function metodoDoController()
    {
        // coloca o que quiser aqui mas vou dar um retorno do famoso hello world

        return "Hello World";
    }
Enter fullscreen mode Exit fullscreen mode

Antes de continuar esqueci de dizer onde ficam os arquivos de controllers e como cria eles. Os arquivos ficam em app/Http/Controllers e é possivel criar um novo com o comando php artisan make:controller NomeDoController

Isso é extremamente básico, vamos fazer algo útil mesmo, vamos pegar dados que vieram na requisição:

    public function metodoDoController(Request $request)
    {
        $dadosDoRequest = $request->all();
    }
Enter fullscreen mode Exit fullscreen mode

Agora eu pedi a injeção do Request como parâmetro do método, o Laravel injeta automaticamente o objeto do Request, com essa injeção podemos fazer outras coisas mas mais adiante veremos mais afundo a injeção de dependência nos métodos de Controller. O método 'all' retorna um array com tudo de dado que veio no request. Vamos supor que esse é o método de login e deve receber email e senha na requisição:

    public function login(Request $request)
    {
        $email = $request->email;
        $senha = $request->senha;

        return response()->json([
            'email' => $email,
            'senha' => $senha
        ]);
    }
Enter fullscreen mode Exit fullscreen mode

Agora obtive o email e senha utilizando o request de uma maneira diferente, chamando diretamente a chave do dado como se fosse uma propriedade do objeto. No PHP temos os métodos mágicos, e o __get() é um deles utilizado amplamente dentro do Laravel, em outros casos veremos esse mesmo esquema de chamar propriedades que não foram definidas na classe. E pra finalizar o método utilizei o response()->json() que retorna a resposta com o header 'application/json' para o cliente.

Somente com isso já podemos fazer coisas legais, como a famosa calculadora :)

    public function somar(Request $request)
    {
        $numero1 = $request->numero1;
        $numero2 = $request->numero2;

        return response()->json([
            'resultado' => $numero1 + $numero2
        ]);
    }
Enter fullscreen mode Exit fullscreen mode

Somente com isso já podemos realmente criar uma API que não precise de base de dados e ir explorando o Request e Response do Laravel. Use o wget, postman, insomnia, o navegador ou qualquer outra ferramenta para enviar requisições HTTP e teste sua API.

Na próxima veremos o início de banco de dados, já montando uma API mais dinâmica e legal :)

Top comments (0)