Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/bgmp/library
- Owner: BGMP
- Created: 2023-10-16T05:51:53.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-16T22:15:54.000Z (about 1 year ago)
- Last Synced: 2024-10-07T20:09:45.307Z (about 1 month ago)
- Topics: h2, hibernate, java, maven, spring-boot
- Language: Java
- Homepage:
- Size: 72.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
}
}