Hackaton HackForChange FIAP + Alura + Passos Mágicos
Projeto desenvolvido para o Hackaton #HackForChange organizado pela FIAP + Alura, em parceria com a ONG Passos Mágicos!
A ideia central dessa API é servir como uma Plataforma de Mentoria.
Este projeto usa Quarkus, o Supersonic Subatomic Java Framework.
Se você quiser saber mais sobre o Quarkus, visite seu site: https://quarkus.io/.
Você pode subir o banco de dados PostgreSQL usando o comando:
docker-compose up
Você pode executar seu aplicativo no modo de desenvolvimento que permite codificação ao vivo usando:
./mvnw compile quarkus:dev
NOTA: O Quarkus agora vem com uma Dev UI, que está disponível no dev mode apenas em http://localhost:8080/q/dev/.
O aplicativo pode ser empacotado usando:
./mvnw package
Ele produz o arquivo quarkus-run.jar
no diretório target/quarkus-app/
.
Esteja ciente de que não é um über-jar pois as dependências são copiadas para o diretório target/quarkus-app/lib/
.
O aplicativo agora pode ser executado usando java -jar target/quarkus-app/quarkus-run.jar
.
Se você deseja construir um über-jar, execute o seguinte comando:
./mvnw package -Dquarkus.package.type=uber-jar
O aplicativo, empacotado como um über-jar, agora pode ser executado usando java -jar target/*-runner.jar
.
Você pode criar um executável nativo usando:
./mvnw package -Dnative
OOu, se você não tiver o GraalVM instalado, você pode executar a compilação executável nativa em um contêiner usando:
./mvnw package -Dnative -Dquarkus.native.container-build=true
Você pode então executar seu executável nativo com: ./target/hackaton-fiap-1.0.0-SNAPSHOT-runner
Se você quiser saber mais sobre como construir executáveis nativos, consulte https://quarkus.io/guides/maven-tooling.
Neste projeto utilizamos a estratégia de package by feature. Além disso ele foi inspirado nos conceitos da Tomato Architecture
.
├── Quarkus
├── src
│ └── main
│ └── java
│ ├── org.hackforchange.mentoria
│ ├── org.hackforchange.mentoria.aplicacao
│ ├── org.hackforchange.mentoria.aplicacao.dtos
│ ├── org.hackforchange.mentoria.aplicacao.mappers
│ ├── org.hackforchange.mentoria.dominio
│ └── org.hackforchange.mentoria.infra
├── src
│ └── main
│ └── resources
│ ├── META-INF.resources
│ │ └── index.html
│ ├── application.properties
│ └── import.sql
├── src
│ └── test
│ └── java
├── JRE System Library
├── Maven Dependencies
├── target
│ └──hackaton-fiap-1.0.0-SNAPSHOT.jar
├── mvnw
├── mvnw.cmd
├── pom.xml
└── README.md
aplicacao
— camada de aplicação;dominio
— camada de domínio;infra
— camada de infraestrutura;resources/application.properties
- arquivo de configuraçãotest/
- testes unitários e de integraçãopom.xml
- dependências do projeto
http://localhost:8080/q/dev-ui/io.quarkus.quarkus-smallrye-openapi/swagger-ui
- Hibernate Validator (guide): Valide propriedades de objetos (campo, getter) e parâmetros de método para seus beans (REST, CDI, Jakarta Persistence)
- SmallRye OpenAPI (guide): documente suas APIs REST com OpenAPI - vem com Swagger UI
- RESTEasy Reactive (guia): Uma implementação REST de Jacarta utilizando processamento de tempo de construção e Vert.x. Esta extensão não é compatível com a extensão quarkus-resteasy ou com qualquer uma das extensões que dela dependem.
- Cliente PostgreSQL reativo (guide): Conecte-se ao banco de dados PostgreSQL usando o padrão reativo
Inicie facilmente seus serviços Web RESTful reativos