API REST para gerenciamento de pedidos, desenvolvida com Java e Quarkus.
Disponibilizar operacoes de criacao e consulta de pedidos com validacao de entrada, persistencia relacional e documentacao OpenAPI.
- Java 21
- Quarkus 3.32.4
- Jakarta REST
- Hibernate ORM com Panache
- Hibernate Validator (Bean Validation)
- H2 (banco em memoria)
- SmallRye OpenAPI (Swagger UI)
- Maven
src/main/java/com/luqtta
controller: endpoints HTTPservice: regras de negocioentity: entidades JPAdto: contratos de entradadomain: enums e tipos de dominioexception: excecoes e mapeamento de erro
- JDK 21
- Maven (ou Maven Wrapper do projeto)
Linux/macOS:
./mvnw quarkus:devWindows:
mvnw.cmd quarkus:devAplicacao: http://localhost:8080
- Swagger UI:
http://localhost:8080/q/swagger-ui - OpenAPI:
http://localhost:8080/openapi
POST /orders
Exemplo de request:
{
"customerName": "Lucas Morais",
"customerEmail": "lucas@email.com",
"items": [
{
"productName": "Mouse Gamer",
"quantity": 2,
"unitPrice": 150.00
},
{
"productName": "Teclado Mecanico",
"quantity": 1,
"unitPrice": 320.00
}
]
}Resposta esperada: 201 Created
GET /orders/{id}
Resposta esperada:
200 OKquando encontrado404 Not Foundquando nao encontrado
GET /orders?page=0&size=10
Resposta esperada: 200 OK
- Status inicial do pedido:
CREATED createdAtdefinido na criacao do pedidototalAmountcalculado automaticamente com base nos itens- Cada pedido deve conter ao menos um item
- Campos de cliente e itens sao validados via Bean Validation
Configuracao atual (desenvolvimento):
- Banco: H2 em memoria
- URL:
jdbc:h2:mem:orderdb - Usuario:
sa - Schema strategy:
drop-and-create
Observacao: os dados sao perdidos ao reiniciar a aplicacao.
Quando um pedido nao e encontrado, a API retorna 404 Not Found com payload JSON.
Exemplo:
{
"timestamp": "2026-03-19T02:49:24.352075",
"status": 404,
"error": "Not Found",
"message": "Order with id 111 not found"
}Executar testes:
./mvnw testGerar pacote JVM:
./mvnw packageGerar build nativo:
./mvnw package -Dnative