Class CategoryController

java.lang.Object
com.proyecto.jpa.controller.CategoryController

@RestController @RequestMapping("/api/categories") public class CategoryController extends Object
Controlador REST para la gestión de categorías (Capa de Presentación).

Expone endpoints HTTP para realizar operaciones CRUD sobre categorías. Todos los endpoints retornan respuestas en formato JSON.

Arquitectura de 3 Capas

 CategoryController (Capa de Presentación) ← Esta clase
         ↓
 CategoryService (Capa de Negocio)
         ↓
 CategoryRepository (Capa de Datos)
 

Endpoints Disponibles

  • GET /api/categories - Obtener todas las categorías
  • GET /api/categories/{id} - Obtener una categoría por ID
  • POST /api/categories - Crear una nueva categoría
  • PUT /api/categories/{id} - Actualizar una categoría
  • DELETE /api/categories/{id} - Eliminar una categoría (en cascada)
Since:
1.0.0
Version:
1.0.0
Author:
Proyecto JPA
See Also:
  • Constructor Details

    • CategoryController

      @Autowired public CategoryController(CategoryService categoryService)
      Constructor con inyección de dependencias.
      Parameters:
      categoryService - servicio de categorías
  • Method Details

    • getAllCategories

      @GetMapping public org.springframework.http.ResponseEntity<List<Category>> getAllCategories()
      Obtiene todas las categorías.
      Returns:
      lista de categorías con código 200 OK
    • getCategoryById

      @GetMapping("/{id}") public org.springframework.http.ResponseEntity<Category> getCategoryById(@PathVariable Long id)
      Obtiene una categoría por su ID.
      Parameters:
      id - el ID de la categoría
      Returns:
      la categoría con código 200 OK, o 404 Not Found si no existe
    • createCategory

      @PostMapping public org.springframework.http.ResponseEntity<Category> createCategory(@Valid @RequestBody @Valid Category category)
      Crea una nueva categoría.
      Parameters:
      category - la categoría a crear
      Returns:
      la categoría creada con código 201 Created
    • updateCategory

      @PutMapping("/{id}") public org.springframework.http.ResponseEntity<Category> updateCategory(@PathVariable Long id, @Valid @RequestBody @Valid Category category)
      Actualiza una categoría existente.
      Parameters:
      id - el ID de la categoría a actualizar
      category - los nuevos datos de la categoría
      Returns:
      la categoría actualizada con código 200 OK, o 404 Not Found si no existe
    • deleteCategory

      @DeleteMapping("/{id}") public org.springframework.http.ResponseEntity<Void> deleteCategory(@PathVariable Long id)
      Elimina una categoría por su ID.

      Operación en Cascada: Al eliminar la categoría, todos los productos asociados se eliminarán automáticamente.

      Parameters:
      id - el ID de la categoría a eliminar
      Returns:
      código 204 No Content si se eliminó, o 404 Not Found si no existe
    • countCategories

      @GetMapping("/count") public org.springframework.http.ResponseEntity<Long> countCategories()
      Cuenta el número total de categorías.
      Returns:
      el número de categorías con código 200 OK