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 :)

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay