Este proyecto consta de las siguientes carácteristicas:
-
La aplicación se desarolló en Python 3.8.10 mediante el framework Django v3.2.6 y los paquetes que se listan en el archivo requirements.txt.
-
Comprende un diseño de base de datos hecho en PostgreSQL.
-
Es una API de tipo GraphQL.
-
Consta de un servicio web para buscar un libro por los atributos de id, titulo, subtítulo, nombre del editor o editorial, año, descripción, nombre de uno de sus autores, nombre de una de sus categorías. Principalmente se realiza la búsqueda del libro dentro de la base de datos y en caso de no existir, se consulta la API de Google Books y la API de OpenLibrary, almacenando en la base de datos los libros encontrados en ambas API y mostrándolos como respuesta.
-
Consta de un servicio web para eliminar un libro, mediante el título.
-
Los endpoints están protegidos con el mecanismo de seguridad JWT, razón por la cual el usuario quien utiliza la aplicación debe estár registrado y debe haber iniciado sesión para poder consultar un libro.
Endpoint único:
https://bookstoreappr5.herokuapp.com/api/v1/book
- Registro del usuario:
mutation {
crearUsuario(
username: "###"
password: "###"
email: ""
)
{
usuario {
username
password
email
}
}
}
- Inicio de sesión para obtener el token de acceso:
mutation {
getToken(username:"###", password:"###")
{
token
}
}
- Creación de un libro:
mutation {
crearLibro(datosLibro:{
titulo: "###"
subtitulo: "###"
descripcion: "###"
editor: {
name: "###"
}
autores: [
{
name: "###"
}
]
categorias: [
{
name: "###"
}
]
url: "###"
anio: "###"
})
{
libro {
title
autor {
name
}
categoria {
name
}
}
}
}
- Consulta de un libro:
query {
libros (titulo: "###"
autor: "###"
categoria: "###"
editor: "###"){
title,
autor {
name
}
categoria {
name
}
yearPublished
editor {
name
}
}
}
- Eliminación de un libro:
mutation{
eliminarLibro(titulo:"###")
{
libros {
title
}
}
}