Este proyecto consiste en desarrollar una API REST que administra un blog de StarWars, donde los usuarios pueden listar personajes y planetas, así como agregar o eliminar favoritos. La API está diseñada siguiendo principios RESTful y está conectada a una base de datos, lo que permite manejar datos dinámicos como personajes, planetas y usuarios.
- Backend: Python (Flask)
- ORM: SQLAlchemy para la interacción con la base de datos
- Base de Datos: PostgreSQL
- Pruebas de API: Postman
Endpoints Implementados
- [GET] /people - Listar todos los personajes.
- [GET] /people/int:people_id - Obtener información de un personaje específico.
- [GET] /planets - Listar todos los planetas.
- [GET] /planets/int:planet_id - Obtener información de un planeta específico.
- [GET] /users - Listar todos los usuarios registrados.
- [GET] /users/favorites - Listar todos los favoritos del usuario actual.
- [POST] /favorite/planet/int:planet_id - Añadir un planeta a favoritos del usuario.
- [POST] /favorite/people/int:people_id - Añadir un personaje a favoritos del usuario.
- [DELETE] /favorite/planet/int:planet_id - Eliminar un planeta de favoritos.
- [DELETE] /favorite/people/int:people_id - Eliminar un personaje de favoritos.
- Modelado de base de datos utilizando SQLAlchemy.
- Sistema de migraciones de base de datos con Alembic (Flask).
- Soporte para CRUD completo para los modelos de datos, permitiendo la administración completa del contenido a través de la API.
Se utilizan herramientas como Postman para probar y validar todos los endpoints de la API, asegurando que cada operación cumpla con las especificaciones y el manejo adecuado de errores.
Se recomienda extender el proyecto agregando endpoints adicionales para crear, modificar y eliminar personajes y planetas, proporcionando una gestión completa de la base de datos a través de la API.
Utiliza el boilerplate para Flask REST como punto de partida. Configura la base de datos localmente o utiliza un entorno de desarrollo como Gitpod.