Esta é uma API desenvolvida com o framework Quarkus para gerenciar transações financeiras. A API fornece endpoints para criar, listar, atualizar e excluir transações, tipos de transações e contas bancárias.
GET /transactions
Retorna uma lista de todas as transações.
Resposta de exemplo:
[
{
"id": 1,
"name": "Compra no supermercado",
"transactionTypeId": 1,
"transactionDate": "2023-10-01",
"amount": -150.75,
"category": "Alimentação"
}
]GET /transactions/{transactionTypeId}
Retorna uma lista com transações de um tipo específico.
Parâmetros:
transactionTypeId(Long): ID do tipo da transação.
Resposta de exemplo:
[
{
"id": 1,
"name": "Compra no supermercado",
"transactionTypeId": 1,
"transactionDate": "2023-10-01",
"amount": -150.75,
"category": "Alimentação"
},
{
"id": 2,
"name": "Ifood",
"transactionTypeId": 1,
"transactionDate": "2025-03-26",
"amount": -52.0,
"category": "Food"
}
]POST /transactions
Cria uma nova transação.
Corpo da requisição:
{
"name": "Compra no supermercado",
"transactionTypeId": 1,
"transactionDate": "2023-10-01",
"amount": -150.75,
"category": "Alimentação"
}Resposta de exemplo:
- Status:
201 Created - Corpo: A transação criada.
PUT /transactions/{id}
Atualiza os dados de uma transação existente.
Parâmetros:
id(Long): ID da transação.
Corpo da requisição:
{
"name": "Compra no supermercado",
"transactionTypeId": 1,
"transactionDate": "2023-10-02",
"amount": -200.00,
"category": "Lazer"
}Resposta de exemplo:
{
"name": "Compra no supermercado",
"transactionTypeId": 1,
"transactionDate": "2023-10-02",
"amount": -200.00,
"category": "Lazer"
}DELETE /transactions/{id}
Exclui uma transação pelo ID.
Parâmetros:
id(Long): ID da transação.
Resposta de exemplo:
- Status:
204 No Content
GET /transaction-types
Retorna uma lista de todos os tipos de transações.
Resposta de exemplo:
[
{
"transactionTypeId": 1,
"name": "Despesa"
},
{
"transactionTypeId": 2,
"name": "Receita"
}
]GET /transaction-types/{transactionTypeId}
Retorna os detalhes de um tipo de transação específico.
Parâmetros:
transactionTypeId(Long): ID do tipo de transação.
Resposta de exemplo:
{
"transactionTypeId": 1,
"name": "Despesa"
}POST /transaction-types
Cria um novo tipo de transação.
Corpo da requisição:
{
"name": "Investimento"
}Resposta de exemplo:
- Status:
201 Created - Corpo: O tipo de transação criado.
PUT /transaction-types/{transactionTypeId}
Atualiza os dados de um tipo de transação existente.
Parâmetros:
transactionTypeId(Long): ID do tipo de transação.
Corpo da requisição:
{
"name": "Despesa"
}Resposta de exemplo:
{
"transactionTypeId": 1,
"name": "Despesa"
}DELETE /transaction-types/{transactionTypeId}
Exclui um tipo de transação pelo ID.
Parâmetros:
transactionTypeId(Long): ID do tipo de transação.
Resposta de exemplo:
- Status:
204 No Content
GET /bank-accounts
Retorna uma lista de todas as contas bancárias.
Resposta de exemplo:
[
{
"bankAccountId": 1,
"name": "José",
"accountNumber": "123456-7",
"agencyNumber": "001"
},
{
"bankAccountId": 2,
"name": "Conta Poupança",
"accountNumber": "987654-3",
"agencyNumber": "001"
}
]GET /bank-accounts/{bankAccountId}
Retorna os detalhes de uma conta bancária específica.
Parâmetros:
bankAccountId(Long): ID da conta bancária.
Resposta de exemplo:
{
"bankAccountId": 1,
"name": "José",
"accountNumber": "123456-7",
"agencyNumber": "001"
}POST /bank-accounts
Cria uma nova conta bancária.
Corpo da requisição:
{
"name": "José",
"accountNumber": "123456-7",
"agencyNumber": "001"
}Resposta de exemplo:
- Status:
201 Created - Corpo: A conta bancária criada.
PUT /bank-accounts/{bankAccountId}
Atualiza os dados de uma conta bancária existente.
Parâmetros:
bankAccountId(Long): ID da conta bancária.
Corpo da requisição:
{
"name": "José",
"accountNumber": "123456-8",
"agencyNumber": "001"
}Resposta de exemplo:
{
"bankAccountId": 1,
"name": "José",
"accountNumber": "123456-8",
"agencyNumber": "001"
}DELETE /bank-accounts/{bankAccountId}
Exclui uma conta bancária pelo ID.
Parâmetros:
bankAccountId(Long): ID da conta bancária.
Resposta de exemplo:
- Status:
204 No Content
- Java 17 ou superior
- Maven 3.8.1 ou superior
-
Clone o repositório:
git clone <URL_DO_REPOSITORIO> cd <NOME_DO_REPOSITORIO>
-
Compile o projeto:
./mvnw clean package
-
Execute a aplicação em modo de desenvolvimento:
./mvnw quarkus:dev
-
Acesse a API em: http://localhost:8080
- Quarkus: Framework Java para aplicações nativas em nuvem.
- Jakarta RESTful Web Services (JAX-RS): Para criação dos endpoints REST.
- Jakarta Transactions: Para gerenciamento de transações.
src/main/java: Código-fonte principal.src/test/java: Testes unitários.src/main/resources: Arquivos de configuração e recursos.