https://github.com/felipesouzacunha/workshop-spring-boot-mongodb
Este projeto é uma API REST desenvolvida com Spring Boot e MongoDB, onde os usuários podem ser cadastrados e criar posts. Cada post contém um usuário aninhado. A arquitetura segue o padrão DTO e utiliza a estrutura Controller-Service-Repository.
https://github.com/felipesouzacunha/workshop-spring-boot-mongodb
mongodb spring-boot springboot springweb
Last synced: about 1 month ago
JSON representation
Este projeto é uma API REST desenvolvida com Spring Boot e MongoDB, onde os usuários podem ser cadastrados e criar posts. Cada post contém um usuário aninhado. A arquitetura segue o padrão DTO e utiliza a estrutura Controller-Service-Repository.
- Host: GitHub
- URL: https://github.com/felipesouzacunha/workshop-spring-boot-mongodb
- Owner: Felipesouzacunha
- License: mit
- Created: 2025-02-08T16:51:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-09T04:01:00.000Z (over 1 year ago)
- Last Synced: 2025-07-27T10:36:32.116Z (11 months ago)
- Topics: mongodb, spring-boot, springboot, springweb
- Language: Java
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Projeto Spring Boot com MongoDB
Este projeto é uma API REST desenvolvida com **Spring Boot** e **MongoDB**, onde os usuários podem ser cadastrados e criar posts. Cada post contém um usuário aninhado. A arquitetura segue o padrão **DTO** e utiliza a estrutura **Controller-Service-Repository**.
## Tecnologias Utilizadas
- **Java 21**
- **Spring Boot 3**
- **Spring Data MongoDB**
- **MongoDB**
- **Spring Web**
## Estrutura do Projeto
O projeto segue a estrutura **Controller-Service-Repository**, garantindo a separação de responsabilidades:
```
src/
│── main/
│ ├── java/com/felipesouza/workshop/
│ │ ├── config/
│ │ ├── controller/
│ │ ├── controller/exception
│ │ ├── controller/util
│ │ ├── domain/
│ │ ├── dto/
│ │ ├── repository/
│ │ ├── services/
│ │ ├── services/exception
│ ├── resources/
│ ├── application.properties
│── test/
```
### Domain
- **User**: Representa um usuário do sistema.
- **Post**: Representa um post criado por um usuário.
### DTOs
- **UserDTO**: Utilizado para transferir dados do usuário de forma otimizada.
- **PostDTO**: Transferência de dados do post aninhado ao usuário.
- **CommentsDTO**: Transferência de dados para uma lista de comentários atrelados aos post.
### Endpoints da API
#### Usuários
| Método | Endpoint | Descrição |
|--------|----------|------------|
| GET | `/users` | Retorna todos os usuários |
| GET | `/users/{id}` | Retorna um usuário por ID |
| GET | `/users/{id}/posts` | Retorna os comentários que o usuários fez |
| POST | `/users` | Cadastra um novo usuário |
| PUT | `/users/{id}` | Atualiza um usuário existente |
| DELETE | `/users/{id}` | Remove um usuário |
#### Posts
| Método | Endpoint | Descrição |
|--------|----------|------------|
| GET | `/posts/{id}` | Retorna um post por ID |
| GET | `/posts/titleseach` | Retorna os comentários do post |
| GET | `/posts/fullSearch` | Uma busca avançada com regex especificando a data miníma, a data máxima e o título |
## Configuração e Execução
1. Clone o repositório:
```sh
git clone https://github.com/Felipesouzacunha/workshop-spring-boot-mongodb.git
```
2. Configure o MongoDB no `application.properties`:
```properties
spring.data.mongodb.uri=mongodb://localhost:27017/workshop_mongo
```
3. Execute a aplicação com:
```sh
mvn spring-boot:run
```
4. Acesse os endpoints via Postman ou outra ferramenta API.
## Contribuições
Contribuições são bem-vindas! Para contribuir:
1. Faça um fork do repositório.
2. Crie uma branch.
3. Envie um pull request.
## Licença
Este projeto é distribuído sob a licença MIT. Consulte `LICENSE` para mais informações.