Tempo de leitura: 10 minutos
Introdução ao Quarkus
O Quarkus é um framework de desenvolvimento de software de código aberto, desenvolvido pela Red Hat, que visa simplificar e acelerar o desenvolvimento de aplicativos Java e Kotlin para ambientes de nuvem e containers, com as principais características e benefícios do Quarkus:
- Eficiência de recursos: O Quarkus foi projetado para otimizar o uso de recursos, incluindo memória e tempo de inicialização. Isso é alcançado através da compilação ahead-of-time (AOT), reduzindo o tamanho do arquivo JAR e diminuindo o tempo necessário para iniciar a aplicação.
- Suporte nativo a GraalVM: O Quarkus é compatível com a GraalVM, o que permite compilar aplicações Java em binários nativos, proporcionando tempos de inicialização ultra-rápidos e uma pegada de memória mínima.
- Desenvolvimento ágil e produtivo: O Quarkus oferece uma experiência de desenvolvimento ágil, com recargas rápidas e suporte para hot-reload, o que permite aos desenvolvedores verem as alterações instantaneamente durante o desenvolvimento.
- Ecossistema de extensões: O framework possui um ecossistema de extensões que simplifica a integração com tecnologias populares, como frameworks de persistência de dados (Hibernate, Panache), frameworks web (Vert.x, RESTEasy), e ferramentas de monitoramento (Prometheus, Jaeger), entre outros.
- Suporte a microsserviços e arquitetura de nuvem: O Quarkus foi projetado para ser altamente escalável e adequado para construir microsserviços e aplicações baseadas em arquiteturas de nuvem, com suporte integrado para contêineres, Kubernetes e serviços em nuvem como AWS, Azure e Google Cloud Platform.
- Compatibilidade com Jakarta EE e MicroProfile: O Quarkus oferece compatibilidade com os padrões Jakarta EE e MicroProfile, permitindo que os desenvolvedores aproveitem os padrões e APIs familiares ao construir suas aplicações.
O Quarkus é uma plataforma de desenvolvimento de software moderna e eficiente, que combina características como eficiência de recursos, desenvolvimento ágil, suporte a microsserviços e integração com tecnologias populares, tornando-o uma escolha atraente para o desenvolvimento de aplicações Java e Kotlin na era da computação em nuvem e contêineres.
Ambiente de Desenvolvimento Integrado
O IntelliJ IDEA é uma poderosa e popular ferramenta de desenvolvimento integrado (IDE) utilizada por programadores em uma variedade de linguagens de programação, incluindo Java, Kotlin, Python e muitas outras. Oferecendo uma ampla gama de recursos, o IntelliJ proporciona um ambiente de desenvolvimento intuitivo e eficiente. Sua interface amigável, juntamente com recursos avançados como refatoração de código, depuração, análise estática e integração com sistemas de controle de versão, como Git, tornam-no uma escolha preferida para desenvolvedores individuais e equipes de desenvolvimento.
Além disso, o IntelliJ IDEA é altamente personalizável, permitindo que os desenvolvedores ajustem e configurem a IDE de acordo com suas preferências e necessidades específicas. Com suporte a uma vasta gama de plugins e integrações com ferramentas de desenvolvimento populares, como Maven e Gradle, o IntelliJ capacita os desenvolvedores a trabalharem de forma mais produtiva e eficiente, garantindo um fluxo de trabalho suave e sem interrupções ao longo do processo de desenvolvimento de software.
Para o desenvolvimento do nosso exemplo, iremos utilizar a versão IntelliJ IDEA Community Edition, que pode ser obtida no seguinte link [https://www.jetbrains.com/idea/download/], utilizaremos o sistema operacional Windows, como plataforma para o desenvolvimento, mas pode ser utilizado sistemas Linux ou MacOS.
Criação de um Novo Projeto
Para demonstrar o processo de criação de um novo projeto, iremos utilizar a metodologia de passo a passo, onde iremos descrever os passos necessários para a criação do projeto.
Passo 01: Para criar o projeto acesso o link quarkus.io, para ser direcionado para a página principal do projeto, após o carregamento da página clique no botão START CODING, conforme imagem a seguir.

Passo 02: Após ter clicado no botão START CODING, será carrega uma página com uma explicação (em inglês) sobre as funcionalidade do Quarkus, e interessante que você faça a leitura do texto e depois clique no botão Let´s start coding!, para carregar a tela de configuração do projeto pelo assistente de criação do projeto oferecido pelo Quarkus, conforme imagem a seguir. Apenas uma observação: Caso estivessemos utilzando outra IDE com por exemplo Visual Studio Code ou o IntelliJ IDEA Ultimate (vesão paga), poderiamos criar o projeto diretamente dentro da ferramenta, mas isso é um assunto para outros artigos!

Passo 03: Após ter clicado no botão Let´s start coding!, é carregado a página de configuração de aplicações que utilizem o Quarkus, onde serão executadas algumas configurações do projeto e escolha de extensões para o projeto, conforme imagem a seguir.

Passo 04: Após ter clicado no botão Let´s start coding!, é carregado a página de configuração de aplicações que utilizem o Quarkus, onde serão executadas algumas configurações do projeto e escolha de extensões para o projeto. Para este tutorial altere apenas os seguintes elementos: Group: br.com.developeracaemy, Artifact: app-tutorial-01, Build Tool: Maven, Version: 1.0.0-SNAPSHOT, Java Version: 21, Starter Code: No, conforme imagem a seguir. Após ter configurado os elementos destacados, clique no botão Generate your application.

Passo 05: Após ter clicado no botão Generate your application, é carregado a página informando que sua app está pronta, image a seguir. Clique no botão DOWNLOAD THE ZIP, e observe que será feito o download arquivo app-tutorial-01.zip, para o seu computador, conforme imagem a seguir. Observe o lugar onde esse arquivo será salvo.

Passo 06: Após ter clicado no botão DOWNLOAD THE ZIP, o download do arquivo app-tutorial-01.zip, foi feito para o seu computador, faça a descompacção desse arquivo, parfa que possamos começar a trabalhar em nosso projeto, conforme imagem a seguir.

Pronto! Em seis passos conseguimos criar o nosso primeiro projeto Quarkus, para podermos continuar é necessário que o IntelliJ IDEA Community Edition, esteja instalado em seu computador.
Desenvolvimento do Aplicativo
Com o projeto app-tutorial-01, criado, agora guiaremos os leitores através do processo de desenvolvimento do aplicativo, mostrando como criar endpoints RESTful e fazer o controle de versão com sistema de controle de versões distribuído: Git, e depois subir o projeto para a plataforma de desenvolvimento colaborativo: GitHub!
Passo 01: Abra o IntelliJ IDEA Community Edition, e clique no botão Open. Uma observação, se for a primeira vez que você abre o IntelliJ a tela da imagem a seguir irá aparecer, mas caso já tenha um projeto aberto vá em no menu File submenu Open….

Passo 02: Após ter clicado no botão Open, na janela Open File or Project, selecione a pasta do projeto app-tutorial-01, conforme imagem a seguir, e clique no botão OK.

Passo 03: Após ter clicado no botão OK, da janela Open File or Project, com o projeto app-tutorial-01, selecionado, pode aparecer a janela Trust and Open project ‘…’, conforme imagem a seguir, e clique no botão Trust Project. Para afirmar que você confia no conteúdo da pasta selecionada, no passo anterior.

Passo 04: Pronto, agora o seu projeto está aberto, dentro do IntelliJ IDEA Community Edition, e pronto para iniciar o processo de desenvolvimento de nossa api!!!

Passo 05: Dentro do IntelliJ IDEA Community Edition, na aba Project, clique duas vezes sobre o arquivo pom.xml, para adicionar novas extensões ou bibliotecas em nosso projeto. Dentro do arquivo encontre o trecho <dependencies>, conforme destacado na imagem a seguir.

Passo 06: Adicione as extensões: quarkus-resteasy-reactive e quarkus-resteasy-reactive-jackson, no projeto, . Para isso deixe o trecho do arquivo pom.xml, igual a imagem a seguir. NÃO APAGUE O ARQUIVO, APENAS ADICIONE O QUE ESTÁ DENTRO DO RETÂNGUALO VERMELHO.

Passo 07: Após adicionar as linhas, clique sobre o icone do Maven, image a seguir, para fazer o download das extensões para o seu projeto.

Passo 08: Agora vamos adicionar uma nova Classe em nosso projeto, para isso na janela Project, clique com o botão inverso do mouse (geralmente é o direito) sobre a pasta java, e no menu de contexto que aparece, escolha a opção New subopção Java Class, coforme image a seguir.

Passo 09: Com a janela New Java Class, vamos adicionar uma classe com o nome de CarroResource, para isso adicione o seguinte texto: br.com.developeracademy.carro.CarroResource, coforme image a seguir, selecione a opção Class e tecle ENTER em seu teclado.

Passo 10: Observe que foi adicionado um pacote com o nome br.com.developeracademy.carro e dentro a classe CarroResource, coforme image a seguir,.

Passo 11: Deixe a a classe CarroResource, igual imagem a seguir. Com isso acabamos de criar um serviço carros do tipo RestFull, que possuir as seguintes funcionalidades: selecionar carros (GET), criar carro (POST), alterar carros (PUT) e apagar carro (DELETE). As palavras GET, POST, PUT e DELETE, são conhecidas como Métodos de requisição HTTP, para saber mais acesse o site DeveloperMozilla, lá você vai encontrar mais informações sobre os metódos HTTP.

Passo 12: Nossa parte de códificação para esse projeto está finalizada, agora vamos fazer as devidas configurações para poder fazer a execução desse projeto. Para isso na barra de menu do IntelliJ IDEA Community Edition, clique sobre a palavra Current File e escolha a opção Edit Configurations…, para que a janela de Run/Debug Configurations seja aberta.

Passo 13: Com a janela de Run/Debug Configurations, aberta clique sobre Add new… ou Add new run configurations, e no menu de contexto escolha a opção Maven, para podermos configurar a exeução e o debug da aplicação app-tutorial-01.

Passo 14: Depois de escolher a opção Maven na janela de Run/Debug Configurations, adicione na caixa de texto Run, o seguinte comando compile quarkus:dev, e clique no botão OK. Nesse momento, não é necessário fazer outra configuração nessa tela.

Passo 15: Apos configurar o processo de exeução e o debug da aplicação app-tutorial-01, observe que no onde estava Current File agora aparece app-tutorial-01 [compile,quarkus:dev], nome dado por default pela IDE. Para executar a aplição clique na seta verde a frente.

Passo 16: Caso tudo tenha dado certo, observe a mensagem que aparece na janela Run do IntelliJ IDEA Community Edition, aparece algumas mensagens e dentro delas observe a mensagem: INFO [io.quarkus] (Quarkus Main Thread) app-tutorial-01 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.9.2) started in 2.976s. Listening on: http://localhost:8080, que indica que a aplicação está disponível para acesso.

Passo 17: Para podermos fazer um primeiro teste, abra o navegador de sua preferencia e digite o seguinte endereço: localhost:8080/carros, observe que a mensagem { “mensagem” : “METHOD HTTP GET – [SQL – SELECT] – DA API CARROS”}, é carregada dentro da página, isso indica que tudo deu certo!!!

Conclusão
Em 23 passos, construímos nossa primeira aplicação RESTful utilizando o framework Quarkus. Optamos pelo conhecido ambiente de desenvolvimento integrado IntelliJ IDEA Community Edition, amplamente utilizado na comunidade Java. É importante estar preparado para possíveis imprevistos ao longo do processo, especialmente para aqueles que estão iniciando no desenvolvimento de software. No entanto, com persistência, é possível superá-los e alcançar o sucesso desejado. Continue acompanhando nos acompanhando para mais artigos e tutoriais!!!
Caso você tenha gostado desse artigo e ele tenha sido útil, e quiser contribuir com nosso trabalho, faça uma contribuição, use o QRCode a seguir!!!
