Creación de APIs RESTful con Feign y Spring Boot
Clase 34 de 39 • Curso de Programación Funcional con Java SE
Contenido del curso
- 2

Funciones en Programación Funcional: Conceptos Básicos
03:15 - 3

Funciones como Ciudadanos de Primera Clase en Programación
02:39 - 4

Funciones Puras: Concepto y Ejemplos Prácticos
04:05 - 5

Efectos Secundarios en Programación y su Impacto en el Código
03:12 - 6

Funciones de Orden Superior en Programación
02:28 - 7

Funciones Lambda en Programación Funcional Java
03:30 - 8

Inmutabilidad de Datos en Programación Funcional con Java
11:16
- 9
Programación Funcional en Java SE: Conceptos y Prácticas
00:06 - 10

Programación Funcional en Java: Práctica y Ejemplos en IntelliJ
02:48 - 11

Programación Funcional en Java: Creación y Uso de Funciones
04:03 - 12

Programación Funcional con Predicados en Java
04:57 - 13

Interfaz Consumer y Supplier en Java: Uso y Ejemplos Prácticos
03:54 - 14

Funciones Java para Transformación de Datos y Operaciones Binarias
07:10 - 15

Creación y Uso de Interfaces Funcionales Personalizadas en Java
08:51 - 16

Métodos de Referencia en Programación Funcional Java
04:46 - 17

Inferencia de tipos en Java: funciones y métodos
03:53 - 18

Uso de Expresiones Lambda en Java: Sintaxis y Aplicaciones
12:47 - 19

Interfaz Funcional en Java: Creación y Uso de Métodos Default
04:59 - 20

Encadenamiento de Llamadas en Programación Orientada a Objetos
03:52 - 21

Composición de Funciones en Programación Funcional
06:06
- 22

Uso de la Clase Optional en Java para Manejo de Valores Nulos
12:59 - 23

Manipulación de Streams en Java: Operaciones y Limitaciones
10:18 - 24

Programación Funcional en Java: Uso de Streams y Operaciones Terminales
07:21 - 25
Operaciones de Stream en Java: Intermedias y Finales
05:05 - 26

Operaciones y Concurrente con Stream en Java
05:51 - 27
Operaciones Terminales en Java Streams
06:18 - 28
Operaciones Intermedias en Streams de Java
09:21 - 29

Conversión de Strings a Listas de Enteros en Java
06:14
- 30

Construcción de Proyecto para Buscar Empleo Usando APIs
01:17 - 31

Configuración y Uso de Gradle en Proyectos Java con IntelliJ
03:23 - 32

Creación de una Herramienta de Búsqueda de Trabajo en Terminal
01:51 - 33

Creación de Puntos de Entrada y Dependencias en Proyectos Java
05:54 - 34

Creación de APIs RESTful con Feign y Spring Boot
09:31 - 35

Creación de una Interfaz de Línea de Comandos con JCommander
13:05 - 36

Validación de Argumentos en Terminal con Clases en Ciel
04:32 - 37

Procesamiento de Argumentos y Solicitudes API en Java
11:38 - 38

Creación de API para búsqueda de empleos con Java y CLI
08:31
¿Cómo configurar una API con Feign en Java?
Configurar una API usando Feign en Java puede ayudarte a consumir servicios web con facilidad. Feign simplifica el manejo de peticiones HTTP mediante la creación de interfaces que definen cómo se debe realizar una solicitud a una API. Aquí te explicamos cómo lograrlo paso a paso.
¿Qué es Feign?
Feign es una librería Java que facilita la creación de clientes HTTP de manera declarativa. Permite definir de manera sencilla cómo deben ser las peticiones HTTP mediante anotaciones, lo que mejora la legibilidad y el mantenimiento del código.
¿Cómo crear una interfaz para peticiones?
Lo primero es definir una interfaz que actúe como base para las solicitudes que haremos. En este caso, se va a crear un paquete llamado happy que contendrá la interfaz HappyJobs. Esta interfaz servirá como base para las peticiones una vez se configure Feign.
-
Definir el Método de la Petición:
El siguiente paso es definir un método dentro de la interfaz que devolverá un listado de trabajos disponibles. Este método se anotará con
@Headerspara definir los encabezados HTTP necesarios y@RequestLinepara determinar el tipo de petición y su ruta.public interface HappyJobs { @Headers("Accept: application/json") @RequestLine("GET /positions.json") List<JobPosition> listJobs(@QueryMap Map<String, String> queryMap); }
¿Cómo definir el modelo de datos?
El siguiente paso es crear una clase JobPosition para representar los datos que devolverá la API. Esta clase incluirá las propiedades que la API devuelve, como el identificador, la URL, la creación de fecha, patrón de nomenclatura, entre otros.
public class JobPosition {
private String id;
private String type;
private String url;
private String createdAt;
private String company;
private String companyUrl;
private String location;
private String title;
private String description;
// Getters y Setters
}
¿Cómo generar la instancia de la API?
Finalmente, se necesita una función que genere instancias del cliente Feign:
-
Crear una Clase de Utilidad:
Se puede crear una clase
ApiFactorycon un método estático para generar objetos de tipo API.public class ApiFactory { public static <T> T getApi(Class<T> apiClass, String url) { return Feign.builder() .decoder(new GsonDecoder()) .target(apiClass, url); } } -
Ventajas del Uso de Feign:
Al encapsular la creación de este cliente en una función separada, puedes cambiar las librerías sin que el resto de tu aplicación se vea afectada. Además, ofrece flexibilidad para pivotar a otra librería más robusta en el futuro si lo necesitas.
Fein te permite crear un cliente HTTP eficiente y mantenible, ofreciendo la flexibilidad necesaria para adaptar tu código a nuevas necesidades sin cambio excesivo en la estructura de tu aplicación.