Productos por Subcategoría - bootcamp-uchile-2026/grupo-2-backend GitHub Wiki

Productos por Subcategoría

Funcionalidad

La funcionalidad de Productos por subcategoría consiste en entregar los productos asociados a una subcategoría perteneciente a la categoría consultada.

Al ingresar a la página de una categoría, Frontend/Mobile muestra las subcategorías disponibles y los productos correspondientes a la subcategoría que se encuentre visualizada inicialmente. El usuario puede cambiar posteriormente de subcategoría, solicitando los productos correspondientes.

Desde la perspectiva de Backend, el servicio permite consultar los productos asociados a una subcategoría determinada.


Objetivo

Entregar a Frontend y Mobile la información de los productos asociados a una subcategoría, para que puedan mostrar los productos correspondientes en la página de la categoría.


Responsabilidad del Backend

El backend deberá:

  1. Recibir el identificador de la subcategoría consultada.
  2. Confirmar la existencia de subcategoría.
  3. Consultar los productos asociados a dicha subcategoría.
  4. Entregar la información de los productos correspondientes.

Contrato de API

Endpoint asociado:

GET/subcategorias/{subcategoriaId}/productos

DTO de salida:

ProductoSubCategoriaDto[]

La definición completa del método HTTP, query parameters y respuestas se encuentra centralizada en Endpoints.

La estructura completa de los datos devueltos se encuentra centralizada en DTOs.


Reglas de negocio

  • Toda categoría debe tener al menos una subcategoría.
  • Un producto debe pertenecer a una única subcategoría.
  • Todo producto debe tener un precio definido y válido.
  • Un producto debe estar asociado a una subcategoría existente.
  • El identificador de cada producto debe ser único.

Relación con Página de SubCategorías

El usuario ingresa a Productos, selecciona una categoría y posteriormente visualiza una subcategoría, cuyos productos son obtenidos mediante este servicio.

Productos
   |
   v
Categoría seleccionada
   |
   +---- GET /categorias/{categoriaId}/subcategorias
   |
   v
Subcategoría inicial
   |
   +---- GET /subcategorias/{subcategoriaId}/productos
   |
   v
Productos de la subcategoría
   |
   +---- Cambio de subcategoría
             |
             +---- GET /subcategorias/{subcategoriaId}/productos