Anotaciones Spring para Exponer APIs RESTful

Clase 25 de 35Curso de Java Spring

Resumen

¿Cómo exponer una API utilizando Spring?

El mundo del desarrollo de software es vasto, y una herramienta muy valiosa en la construcción de aplicaciones es la capacidad de exponer APIs de manera eficiente. Spring Framework nos facilita esta tarea proporcionándonos varias anotaciones que nos permiten publicar nuestros servicios rápidamente y con menos complicaciones. En esta clase exploraremos cómo usar las anotaciones @GetMapping, @PostMapping y @DeleteMapping.

¿Cómo usar GetMapping para obtener información?

Para obtener información de nuestro servidor, utilizamos la anotación @GetMapping. Esta anotación nos permite vincular un método a una solicitud HTTP GET. Por ejemplo, si queremos publicar un servicio que recupere una lista completa de productos, simplemente añadimos @GetMapping al método correspondiente, especificando la ruta de acceso adecuada:

@GetMapping("/products")
public List<Product> getProducts() {
    return productService.getAllProducts();
}

Cuando implementamos el servicio y lo lanzamos, podemos verificar su correcto funcionamiento desde el navegador o mediante herramientas como Postman. Una solicitud GET sencilla nos devolverá la lista de productos.

¿Cómo recuperar un producto específico por su ID?

Recuperar un producto por su ID es igualmente sencillo, pero requiere un enfoque ligeramente distinto: debemos incluir una variable de ruta en la anotación @GetMapping. Usamos {} para indicar parámetros de ruta dinámicos y @PathVariable para mapearlos al método pertinente:

@GetMapping("/products/{productId}")
public Product getProductById(@PathVariable("productId") Long id) {
    return productService.getProductById(id);
}

Aquí, el ID del producto se pasa como parte de la URL, lo que nos permite recuperar el producto específico a través de métodos HTTP.

¿Cómo construir servicios más complejos?

Para manejar solicitudes más complejas, como filtrar productos por categoría, modificamos ligeramente nuestras anotaciones:

@GetMapping("/products/category/{categoryId}")
public List<Product> getProductsByCategory(@PathVariable("categoryId") Long categoryId) {
    return productService.getProductsByCategory(categoryId);
}

Asegúrate de diferenciar entre varias rutas posibles para evitar conflictos, por ejemplo, al utilizar identificadores de categorías.

¿Cómo guardar y actualizar información con PostMapping?

Para enviar información nueva al servidor, @PostMapping es la anotación que debemos utilizar, indicando que la información se envía en el cuerpo de la solicitud:

@PostMapping("/products/save")
public Product saveProduct(@RequestBody Product product) {
    return productService.saveProduct(product);
}

Con esto, recibimos un nuevo objeto Product que se procesa y guarda en el sistema. Asegúrate de formatear las solicitudes JSON correctamente en herramientas como Postman.

¿Cómo eliminar registros con DeleteMapping?

Cuando necesitamos eliminar un recurso, @DeleteMapping es la solución. Como en operaciones de obtención de datos, utilizamos la variable de ruta para especificar qué recurso debe eliminarse:

@DeleteMapping("/products/{productId}")
public boolean deleteProduct(@PathVariable("productId") Long id) {
    return productService.deleteProduct(id);
}

Esta llamada posiblemente retornará un valor booleano indicando si la operación fue exitosa.

Exponer APIs utilizando Spring es una tarea accesible y altamente efectiva. Con estos ejemplos y el poderoso conjunto de herramientas de Spring, puedes empezar a crear servicios robustos y eficientes para tu aplicación. ¡Continúa explorando y desarrollando, ya que siempre hay nuevas técnicas y mejoras esperando ser descubiertas!