Introdução
Neste tutorial abrangente, vamos explorar o potencial do Perl para o desenvolvimento de aplicações web utilizando os frameworks Mojolicious e Dancer2. Além de mostrar como construir uma aplicação web simples, vamos integrar testes automatizados com a biblioteca Test::More para garantir a qualidade do código. Por fim, discutiremos como realizar o deploy da aplicação em ambientes Docker, tornando o processo de distribuição mais eficiente e confiável. Este guia é ideal para desenvolvedores que desejam aprofundar suas habilidades em Perl e suas aplicações práticas na web moderna.
Etapas
Configuração do Ambiente de Desenvolvimento
Antes de começar, você deve ter o Perl e o gerenciador de pacotes cpanm (ou cpan) instalados em sua máquina. Você pode verificar a instalação do Perl com `perl -v`. Para instalar o cpanm, use o comando abaixo. Certifique-se também de ter o Docker instalado se quiser usar containers para o deploy.
commands# Verificar versão do Perl
perl -v
# Instalar cpanm
curl -L http://cpanmin.us | perl - --install App::cpanminusCriando um Projeto usando Mojolicious
Vamos criar uma nova aplicação web com Mojolicious. Use o comando abaixo para criar um novo aplicativo chamado ‘MinhaApp’. Este comando irá criar um diretório com os arquivos iniciais da aplicação.
commandsmojo generate app MinhaApp
cd MinhaAppDefinindo a Rota de Exemplo
Abra o arquivo `lib/MinhaApp.pm` e adicione uma rota simples para responder a requisições HTTP. Neste exemplo, a rota responderá com uma mensagem ‘Olá Mundo’.
MinhaApp.pmpackage MinhaApp; use Mojolicious::Lite; get '/' => {text => 'Olá Mundo'}; app->start;
Executando a Aplicação
Agora você pode executar sua aplicação usando o servidor integrado do Mojolicious. Use o seguinte comando para iniciar o servidor na porta 3000.
commandsmorbo script/MinhaApp
Testando a Aplicação com Test::More
Vamos criar um teste simples usando Test::More. Crie um arquivo de teste em ‘t/app.t’ para verificar se a rota principal retorna a resposta correta. O código abaixo faz essa verificação.
app.tuse Test::More; use Mojolicious::Lite; get '/' => {text => 'Olá Mundo'}; my $ua = Mojo::UserAgent->new; my $response = $ua->get('http://localhost:3000/')->result; is($response->body, 'Olá Mundo', 'A rota retorna Olá Mundo'); done_testing;
Executando os Testes
Utilize o comando a seguir para executar seus testes e garantir que tudo esteja funcionando conforme o esperado.
commandsperl t/app.t
Criando um Projeto usando Dancer2
Agora, vamos criar uma aplicação semelhante usando Dancer2. Execute o comando abaixo para gerar um novo aplicativo chamado ‘MinhaAppDancer’.
commandsdancer -a MinhaAppDancer
cd MinhaAppDancerModificando a Rota em Dancer2
Edite o arquivo `lib/MinhaAppDancer.pm` para adicionar uma rota que retorne ‘Olá Mundo’ quando acessada pela URL principal.
MinhaAppDancer.pmpackage MinhaAppDancer; use Dancer2; get '/' => sub { return 'Olá Mundo'; }; start;
Executando a Aplicação Dancer2
Inicie o servidor do Dancer2 usando o comando abaixo, que irá rodar a aplicação na porta 3000.
commandsplackup -r -p 3000
Deploy usando Docker
Crie um Dockerfile na raiz do seu projeto para containerizar sua aplicação. O arquivo Dockerfile para a sua aplicação Mojolicious pode ser assim:
DockerfileFROM perl:latest WORKDIR /usr/src/app COPY . . RUN cpanm Mojolicious CMD ["morbo", "script/MinhaApp"]
Construindo a Imagem Docker
Com o Dockerfile pronto, você pode construir sua imagem Docker utilizando o comando abaixo. Certifique-se de estar no diretório do projeto para que a imagem seja criada corretamente.
commandsdocker build -t minha_app_docker .
Executando o Container
Finalmente, você pode executar o container da sua aplicação usando o comando a seguir. O parâmetro -p expõe a porta 3000 para acesso externo.
commandsdocker run -p 3000:3000 minha_app_docker
Conclusão
Neste tutorial, você aprendeu a criar aplicações web utilizando Perl com os frameworks Mojolicious e Dancer2, além de integrar testes automatizados com Test::More. Finalmente, você viu como é fácil realizar o deploy da sua aplicação em um ambiente Docker. Essa série de passos fornece uma base sólida para o desenvolvimento de aplicações web em Perl, permitindo que você explore ainda mais recursos e funcionalidades oferecidos por esses frameworks. Continue praticando e experimentando para se tornar um desenvolvedor Perl mais habilidoso!