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.