2. Endpoints de la API - dblancou/ApiLetterboxdProyectoFinal GitHub Wiki
La API del Proyecto Final está diseñada para proporcionar un conjunto de endpoints que permiten gestionar películas, listas de películas, reseñas y usuarios. A continuación, se describe detalladamente el propósito y el funcionamiento general de los principales grupos de endpoints.
Películas (Films)
Funcionalidades Principales
Los endpoints relacionados con las películas permiten a los usuarios realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en la base de datos de películas. Las funcionalidades específicas incluyen:
- Crear una Nueva Película: Permite agregar una nueva película proporcionando detalles como el título, director, año, género, descripción, calificación IMDb y la URL del póster.
- Obtener Detalles de una Película: Permite recuperar información detallada de una película específica utilizando su ID.
- Listar Todas las Películas: Devuelve una lista de todas las películas almacenadas en la base de datos.
- Actualizar Información de una Película: Permite modificar los detalles de una película existente.
- Eliminar una Película: Permite eliminar una película de la base de datos utilizando su ID.
- Buscar Películas: Permite buscar películas por diferentes criterios como título, género y director.
- Obtener Últimas Películas: Devuelve una lista de las películas más recientes.
- Obtener Películas Mejor Valoradas: Devuelve una lista de las películas con mejores calificaciones.
Listas de Películas (Movie Lists)
Funcionalidades Principales
Los endpoints relacionados con las listas de películas permiten a los usuarios gestionar sus colecciones personalizadas de películas. Las funcionalidades específicas incluyen:
- Crear una Nueva Lista de Películas: Permite a los usuarios crear una lista personalizada proporcionando un nombre, descripción y las películas que desean incluir.
- Obtener Detalles de una Lista de Películas: Permite recuperar información detallada de una lista específica utilizando su ID.
- Listar Todas las Listas de Películas: Devuelve una lista de todas las listas de películas creadas por los usuarios.
- Actualizar una Lista de Películas: Permite modificar los detalles de una lista existente, incluyendo agregar o eliminar películas.
- Eliminar una Lista de Películas: Permite eliminar una lista de la base de datos utilizando su ID.
- Obtener Listas de Películas por Usuario: Devuelve todas las listas de películas creadas por un usuario específico.
Reseñas (Reviews)
Funcionalidades Principales
Los endpoints relacionados con las reseñas permiten a los usuarios escribir, leer y gestionar reseñas de películas. Las funcionalidades específicas incluyen:
- Crear una Nueva Reseña: Permite a los usuarios escribir una nueva reseña para una película proporcionando detalles como el contenido de la reseña y la calificación.
- Obtener Detalles de una Reseña: Permite recuperar información detallada de una reseña específica utilizando su ID.
- Listar Todas las Reseñas: Devuelve una lista de todas las reseñas almacenadas en la base de datos.
- Obtener Reseñas por Usuario: Devuelve todas las reseñas escritas por un usuario específico.
- Obtener Reseñas por Película: Devuelve todas las reseñas de una película específica.
- Actualizar una Reseña: Permite modificar los detalles de una reseña existente.
- Eliminar una Reseña: Permite eliminar una reseña de la base de datos utilizando su ID.
Usuarios (Users)
Funcionalidades Principales
Los endpoints relacionados con los usuarios permiten gestionar la autenticación y las interacciones entre usuarios. Las funcionalidades específicas incluyen:
- Registro de Usuarios: Permite a los nuevos usuarios registrarse proporcionando un nombre de usuario y una contraseña.
- Inicio de Sesión: Permite a los usuarios autenticarse proporcionando sus credenciales. Esto genera un token JWT que se utiliza para las solicitudes autenticadas posteriores.
- Obtener Detalles de un Usuario: Permite recuperar información pública de un usuario específico utilizando su nombre de usuario.
- Eliminar un Usuario: Permite eliminar un usuario de la base de datos.
- Seguir a un Usuario: Permite a los usuarios seguir a otros usuarios, creando una relación de seguidores/seguidos.
- Dejar de Seguir a un Usuario: Permite a los usuarios dejar de seguir a otros usuarios.
- Obtener Seguidores de un Usuario: Devuelve una lista de todos los seguidores de un usuario específico.
- Obtener Seguidos de un Usuario: Devuelve una lista de todos los usuarios que un usuario específico está siguiendo.