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

  1. 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::cpanminus

  2. Criando 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.

    commands
    mojo generate app MinhaApp
    cd MinhaApp

  3. Definindo 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.pm
    package MinhaApp;
    
    use Mojolicious::Lite;
    
    get '/' => {text => 'Olá Mundo'};
    
    app->start;

  4. 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.

    commands
    morbo script/MinhaApp

  5. 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.t
    use 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;

  6. Executando os Testes

    Utilize o comando a seguir para executar seus testes e garantir que tudo esteja funcionando conforme o esperado.

    commands
    perl t/app.t

  7. 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’.

    commands
    dancer -a MinhaAppDancer
    cd MinhaAppDancer

  8. Modificando a Rota em Dancer2

    Edite o arquivo `lib/MinhaAppDancer.pm` para adicionar uma rota que retorne ‘Olá Mundo’ quando acessada pela URL principal.

    MinhaAppDancer.pm
    package MinhaAppDancer;
    
    use Dancer2;
    
    get '/' => sub { return 'Olá Mundo'; };
    
    start;

  9. Executando a Aplicação Dancer2

    Inicie o servidor do Dancer2 usando o comando abaixo, que irá rodar a aplicação na porta 3000.

    commands
    plackup -r -p 3000

  10. 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:

    Dockerfile
    FROM perl:latest
    
    WORKDIR /usr/src/app
    
    COPY . .
    
    RUN cpanm Mojolicious
    
    CMD ["morbo", "script/MinhaApp"]

  11. 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.

    commands
    docker build -t minha_app_docker .

  12. 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.

    commands
    docker 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!

Hashtags

#Perl #Mojolicious #Dancer2 #Docker #TestMore #DesenvolvimentoWeb