Skip to main content

API de Comentarios

Este archivo define dos funciones que interactúan con el backend para gestionar los comentarios asociados a productos. Utiliza Axios para realizar solicitudes HTTP al servidor.


🔍 Ubicación

src/api/comentarios.ts


📦 Dependencias utilizadas

import axios from 'axios';
import { url } from '../constants';
  • axios: Cliente HTTP para realizar peticiones al servidor.
  • url: Constante que define la URL base del backend.

📘 Funciones exportadas

getComentariosPorProducto(productoId: number)

export const getComentariosPorProducto = (productoId: number) => {
return axios.get(`${url}/comentarios/${productoId}`);
};
  • Realiza una solicitud GET para obtener todos los comentarios asociados a un producto específico.
  • El productoId es pasado como parámetro para formar la ruta de la petición.

📥 Entrada: productoId (número): ID del producto del cual se quieren obtener los comentarios.

📤 Salida: Promesa con la respuesta HTTP que contiene los comentarios.


📝 crearComentario(comentario: { idUsuario: number, idProducto: number, comentario: string })

export const crearComentario = (comentario: { idUsuario: number, idProducto: number, comentario: string }) => {
return axios.post(`${url}/comentarios`, comentario);
};
  • Realiza una solicitud POST para crear un nuevo comentario para un producto determinado.
  • Recibe un objeto con el ID del usuario, el ID del producto y el texto del comentario.

📥 Entrada: Objeto con los siguientes campos:

CampoTipoDescripción
idUsuarionumberID del usuario que comenta.
idProductonumberID del producto comentado.
comentariostringTexto del comentario.

📤 Salida: Promesa con la respuesta HTTP tras crear el comentario.


🚀 Ejemplo de uso

import { getComentariosPorProducto, crearComentario } from "../api/comentarios";

// Obtener comentarios de un producto
const comentarios = await getComentariosPorProducto(7);

// Crear nuevo comentario
await crearComentario({
idUsuario: 2,
idProducto: 7,
comentario: "¡Excelente calidad!",
});

📝 Notas adicionales

  • Este archivo actúa como una capa de abstracción para centralizar las operaciones relacionadas con comentarios.
  • Permite mantener el código más limpio y reutilizable en los componentes del frontend.