Este endpoint crea un nuevo libro en la base de datos.
{
"name": "Nombre del libro",
"category": "ID de la categoría",
"author": "ID del autor",
"editorial": "ID de la editorial",
"pages": Número de páginas,
"year_edition": "Año de edición",
"stock": Cantidad en stock
}
fetch('https://rest-api-library.vercel.app/api/books', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer yourTokenHere'
},
body: JSON.stringify({
name: "Cien años de soledad",
category: "ID de la categoría",
author: "ID del autor",
editorial: "ID de la editorial",
pages: 417,
year_edition: 1967,
stock: 10
})
})
.then(res => res.json())
.then(json => console.log(json));
Modificar un Libro por ID
Endpoint:PUT /api/books/:bookId
Este endpoint actualiza la información de un libro específico basado en su ID.
Parámetros
URL Parameter:bookId (string): El ID del libro que se desea actualizar.
Request Body:
{
"name": "Nuevo Nombre del Libro",
"category": "ID de la categoría",
"author": "ID del autor",
"editorial": "ID de la editorial",
"pages": 350,
"year_edition": 2022,
"stock": 10
}
Respuestas
200 OK:
{
"message": "Libro modificado"
}
404 Not Found:
{
"message": "Libro no fue encontrado"
}
500 Internal Server Error:
{
"message": "Descripción del error"
}
Ejemplo de Solicitud
fetch('https://rest-api-library.vercel.app/api/books/12345', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer yourTokenHere'
},
body: JSON.stringify({
name: "Nuevo Nombre del Libro",
category: "ID de la categoría",
author: "ID del autor",
editorial: "ID de la editorial",
pages: 350,
year_edition: 2022,
stock: 10
})
})
.then(res => res.json())
.then(json => console.log(json))
.catch(error => console.error('Error:', error));
Ejemplo de Respuesta Exitosa
{
"message": "Libro modificado"
}
Ejemplo de Respuesta con Error
Libro no encontrado:
{
"message": "Libro no fue encontrado"
}
Error en el servidor:
{
"message": "Descripción del error"
}
Actualizar un libro por ID
Endpoint:PUT /api/books/:bookId
Este endpoint actualiza la información de un libro basado en su ID.
{
"name": "Nombre actualizado",
"category": "ID de la categoría actualizada",
"author": "ID del autor actualizado",
"editorial": "ID de la editorial actualizada",
"pages": Número de páginas actualizadas,
"year_edition": "Año de edición actualizado",
"stock": Cantidad en stock actualizada
}
fetch('https://rest-api-library.vercel.app/api/books/1', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer yourTokenHere'
},
body: JSON.stringify({
name: "Nombre actualizado",
category: "ID de la categoría actualizada",
author: "ID del autor actualizado",
editorial: "ID de la editorial actualizada",
pages: 420,
year_edition: 1970,
stock: 15
})
})
.then(res => res.json())
.then(json => console.log(json));
Eliminar un libro por ID
Endpoint:DELETE /api/books/:bookId
Este endpoint elimina un libro específico basado en su ID. Si el libro está relacionado con un préstamo activo, no se podrá eliminar.
Este endpoint elimina una editorial específica basada en su ID. Si la editorial es la predeterminada del sistema, no se puede eliminar. Si se encuentra la editorial y se elimina con éxito, se devuelve un mensaje de confirmación.
Este endpoint elimina una categoría específica basada en su ID. Si la categoría es la predeterminada del sistema, no se puede eliminar. Si se encuentra la categoría y se elimina con éxito, se devuelve un mensaje de confirmación.
Este endpoint actualiza el estado de una deuda específica basada en su ID, marcándola como pagada si el monto es suficiente. Debe proporcionar el monto en el cuerpo de la solicitud.
{
"message": "El préstamo ya tiene estado Devuelto, no lo puedes modificar"
}
{
"message": "Tienes 8 libros del _id book1. Estas intentando hacer un préstamo de 10. Verifica la cantidad"
}
Cambiar estado a Devuelto para cerrar préstamo
Endpoint:PUT /api/loans/close/:loanId
Este endpoint cambia el estado de un préstamo a "Devuelto" y actualiza la fecha de retorno. Se deben cumplir ciertas validaciones antes de cerrar el préstamo.