Una API que permite la creación y gestión de un miniblog personal, incluyendo posts, comentarios y categorías.
- Descripción del Repositorio
- Estructura del Proyecto
- Endpoints
- Configuración Inicial
- Testing
- Tecnologias Utilizadas
Este repositorio contiene una aplicación en Flask que permite a los usuarios crear, gestionar y interactuar con un miniblog personal. La aplicación ofrece funcionalidades de autenticación, gestión de posts, comentarios y categorías. La documentación detallada del proyecto está disponible en documentacion.
-
app: Directorio principal de la aplicación.
- auth: Módulo para autenticación, incluyendo handlers y vistas.
- categories: Módulo para gestionar categorías de posts.
- comments: Módulo para gestionar comentarios en posts.
- posts: Módulo para gestionar posts.
- config.py: Configuraciones generales de la aplicación.
- models.py: Define los modelos de la base de datos.
- schemas.py: Esquemas Pydantic para validación y serialización.
- utils.py: Utilidades varias.
-
docker-compose.yml: Define y configura los servicios de Docker.
-
Dockerfile: Instrucciones para construir la imagen Docker de la aplicación.
-
docs: Contiene documentación adicional y archivos relacionados.
-
Makefile: Comandos útiles para gestionar y desplegar la aplicación.
-
migrations: Contiene archivos relacionados con las migraciones de la base de datos.
- backup: Backups de migraciones anteriores.
- versions: Scripts específicos de migración para actualizar la base de datos.
-
README.md: Documentación principal del proyecto.
-
requirements.txt: Lista de dependencias del proyecto.
POST /api/auth/register
: Registrar un nuevo usuario.POST /api/auth/login
: Iniciar sesión (Obtiene un JWT Token).POST /api/auth/verify
: Verifica un JWT Token.POST /api/auth/logout
: Revoca un token por el tiempo de vida que le queda.
GET /api/posts
: Listar todos los posts.POST /api/posts
: Crear un nuevo post.GET /api/posts/{post_id}
: Obtener detalles de un post específico.PUT /api/posts/{post_id}
: Actualizar un post específico.DELETE /api/posts/{post_id}
: Eliminar un post específico.
GET /api/posts/{post_id}/comments/
: Listar todos los comentarios de una publicación.GET /api/posts/{post_id}/comments/{comment_id}
: Obtener comentario especifico.POST /api/posts/{post_id}/comments/
: Crear un nuevo comentario en una publicación.PUT /api/posts/{post_id}/comments/{comment_id}
: Actualizar un comentario.DELETE /api/posts/{post_id}/comments/{comment_id}
: Eliminar un comentario.
GET /api/categories
: Listar todas las categorías.GET /api/categories/{category_id}
: Obtener categoria especifica.POST /api/categories
: Crear una nueva categoría.PUT /api/categories/{category_id}
: Actualizar una categoría.DELETE /api/categories/{category_id}
: Eliminar una categoría.
- Clona este repositorio:
git clone https://github.com/Xukay101/MiniBlog-API.git
cd MiniBlog-API
- Construye los servicios:
make build
- Inicia los servicios:
make up
- Aplica las migraciones:
make upgrade
- Flask
- PostgreSQL
- Redis