Simulación del funcionamiento de una biblioteca utilizando spring boot y Mongo DB.
Mongo db: localhost:27017
_`Spring boot: localhost:8080
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.13.2</version>
</dependency>
</dependencies>
config
- WebfluxConfig
aplication
- mappers
- useCase
- useCaseImp
- JsonReader
domain
- collection
- dto
- repository
- utils
- valueObject
infrastructure
- command_router
- query_router
Se crea un archivo Data.json que contiene una collección de 85 elementos. La data simula una colección de libros, revistas, DVD, rondas infantiles disponibles en una biblioteca
Se crea una clase llamada JsonReader que permite convertir el Data.json en objetos, los cuales se utilizan para ejecutar los tests
Resource command controllers
PUT, POST, DELETE
- returnResource - devolver recurso
- borrowResource - prestar recurso
- deleteAll - Borrar data
- deleteResource - borrar recurso por Id
- updateResource - actualizar recurso
- saveResource - crear y guardar recurso
- fillData - llenar data
Resource query controllers
GET
- findByName - filtrar por nombre
- findByAuthor - filtrar por autor
- recommendByThema&Type - recomendar recurso por temática y tipo de recurso
- recommendByThematicArea - recomendar por temática
- recommendByTypeOfResource - recomendar por tipo de recurso
- findByAvailability - consultar disponibilidad de recurso
- findById - buscar por id
- listResource - lista de recursos
--> importar archivo (Reactive Library.postman_collection.json)
- Lina Maria Guerrero - Biblioteca funcional - LMFront-end