Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/bgmp/library

Prueba Técnica SCD
https://github.com/bgmp/library

h2 hibernate java maven spring-boot

Last synced: 20 days ago
JSON representation

Prueba Técnica SCD

Awesome Lists containing this project

README

        

Library


Implementación



Esta aplicación de Java Spring Boot fue escrita como resolución a la prueba técnica para desarrolladores planteada
por la Sociedad Chilena de Autores e Intérpretes Musicales (SCD).



La base de datos utilizada fue H2 (volátil), y las entidades creadas para efectos de esta prueba fueron las siguientes:



  • Author: Representa autores, los cuales pueden estar relacionados con muchos libros distintos.


  • Book: Representa libros, los cuales sólo pueden estar relacionados con 1 autor.



Author




Atributo
Tipo
Default


id
Long
PK autonicremental


name
String (255)
REQUERIDO


last_name
String (255)
REQUERIDO


books
Set<Book>
new HashSet<>()




Book




Atributo
Tipo
Default


id
Long
PK autonicremental


title
String (255)
REQUERIDO


publication_date
Date (dd-MM-yyyy)
REQUERIDO


pages
Integer
REQUERIDO


price
Float
REQUERIDO


hardcover
Boolean
false


author
Author
REQUERIDO

Servicios REST

La API fue diseñada para mantener actualizados los autores con sus libros correspondientes. Al eliminarse un
autor con libros asociados, la eliminación es en cascada. Esto quiere decir que los libros asociados al autor
eliminado también son eliminados de la base de datos.


A continuación, se detallan ejemplos de cómo interactuar con la API implementada en sus diferentes endpoints:

Author

Crear (POST http://localhost:8080/api/v1/authors)



{
"name": "Miguel",
"lastName": "de Cervantes"
}

Leer todos (GET http://localhost:8080/api/v1/authors)


Leer uno (GET http://localhost:8080/api/v1/authors/1)


Eliminar (DELETE http://localhost:8080/api/v1/authors/1)


Actualizar (PUT http://localhost:8080/api/v1/authors/1)



{
"name": "Julio",
"lastName": "Verne"
}

Book

Crear (POST http://localhost:8080/api/v1/books)



{
"title": "El Quijote",
"publicationDate": "01-01-1605",
"pages": 1560,
"price": 16.99,
"hardcover": true,
"author": {
"id": 1
}
}

Leer todos (GET http://localhost:8080/api/v1/books)


Leer uno (GET http://localhost:8080/api/v1/books/1)


Eliminar (DELETE http://localhost:8080/api/v1/books/1)


Actualizar (PUT http://localhost:8080/api/v1/books/1)



{
"title": "El Quijote",
"publicationDate": "01-01-1605",
"pages": 1560,
"price": 40.99,
"hardcover": false,
"author": {
"id": 1
}
}