An open API service indexing awesome lists of open source software.

https://github.com/noctua05/cadastro-ninjas

Crinado um cadastro Ninja com Spring boot
https://github.com/noctua05/cadastro-ninjas

api backend java spring-boot

Last synced: about 2 months ago
JSON representation

Crinado um cadastro Ninja com Spring boot

Awesome Lists containing this project

README

          

# CadastroDeNinjas 🥷

Projeto de estudo em **Java Spring Boot** com CRUD completo de Ninjas e Missões.
O projeto utiliza **H2 Database** para desenvolvimento, **Swagger** para documentação da API e pode ser executado via **Docker**.

---

## 🚀 Tecnologias utilizadas

- **Java 21**
- **Spring Boot 3.4**
- Spring Web
- Spring Data JPA
- **H2 Database** (em memória/arquivo)
- **Flyway** para versionamento do banco
- **Lombok** para reduzir boilerplate
- **Swagger / SpringDoc** para documentação da API
- **Docker** para containerização
- **Maven** como build tool
- Conceitos aplicados: DTO, Service, Model, Repository, SOLID, Design Patterns, CRUD, Microsserviços básicos

---

## 💻 Funcionalidades

- CRUD de **Ninjas**
- CRUD de **Missões**
- Relacionamento opcional: um Ninja pode ter uma Missão
- Banco H2 em arquivo local
- Swagger UI para testar endpoints
- Dockerfile para rodar o projeto como container

---

## 🛠️ Pré-requisitos

- Java 21 instalado
- Maven
- Docker (opcional, se for rodar em container)

---

## ⚡ Rodando o projeto

### Localmente com Maven

```bash
# Build do projeto
mvn clean package

# Rodar o Spring Boot
mvn spring-boot:run

````
### Rodando via docker

```bash

# Build da imagem
docker build -t cadastro-de-ninjas .

# Rodar o container
docker run -p 8080:8080 cadastro-de-ninjas

```
---

## 🔗 Acessando o projeto

- **Swagger UI (API)**: [http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)
- **H2 Console (Banco de Dados)**: [http://localhost:8080/h2-console](http://localhost:8080/h2-console)

**Credenciais H2 (como no `application.properties`)**:
- JDBC URL: `jdbc:h2:file:./data/NinjasBD`
- Usuário: `Ninja_bd`
- Senha: `admin`

> ⚠️ No Docker, certifique-se de que a porta 8080 esteja exposta.

---