Introducción a la programación Funcional

1

Programación Funcional en Java: Conceptos y Aplicaciones Prácticas

Entendiendo las partes de la programación funcional

2

Funciones en Programación Funcional: Conceptos Básicos

3

Funciones como Ciudadanos de Primera Clase en Programación

4

Funciones Puras: Concepto y Ejemplos Prácticos

5

Efectos Secundarios en Programación y su Impacto en el Código

6

Funciones de Orden Superior en Programación

7

Funciones Lambda en Programación Funcional Java

8

Inmutabilidad de Datos en Programación Funcional con Java

Functional Programming en Java

9

Programación Funcional en Java SE: Conceptos y Prácticas

10

Programación Funcional en Java: Práctica y Ejemplos en IntelliJ

11

Programación Funcional en Java: Creación y Uso de Funciones

12

Programación Funcional con Predicados en Java

13

Interfaz Consumer y Supplier en Java: Uso y Ejemplos Prácticos

14

Funciones Java para Transformación de Datos y Operaciones Binarias

15

Creación y Uso de Interfaces Funcionales Personalizadas en Java

16

Métodos de Referencia en Programación Funcional Java

17

Inferencia de tipos en Java: funciones y métodos

18

Uso de Expresiones Lambda en Java: Sintaxis y Aplicaciones

19

Interfaz Funcional en Java: Creación y Uso de Métodos Default

20

Encadenamiento de Llamadas en Programación Orientada a Objetos

21

Composición de Funciones en Programación Funcional

Optional y Streams: Datos mas interesantes

22

Uso de la Clase Optional en Java para Manejo de Valores Nulos

23

Manipulación de Streams en Java: Operaciones y Limitaciones

24

Programación Funcional en Java: Uso de Streams y Operaciones Terminales

25

Operaciones de Stream en Java: Intermedias y Finales

26

Operaciones y Concurrente con Stream en Java

27

Operaciones Terminales en Java Streams

28

Operaciones Intermedias en Streams de Java

29

Conversión de Strings a Listas de Enteros en Java

Todo junto: Proyecto Job-search

30

Construcción de Proyecto para Buscar Empleo Usando APIs

31

Configuración y Uso de Gradle en Proyectos Java con IntelliJ

32

Creación de una Herramienta de Búsqueda de Trabajo en Terminal

33

Creación de Puntos de Entrada y Dependencias en Proyectos Java

34

Creación de APIs RESTful con Feign y Spring Boot

35

Creación de una Interfaz de Línea de Comandos con JCommander

36

Validación de Argumentos en Terminal con Clases en Ciel

37

Procesamiento de Argumentos y Solicitudes API en Java

38

Creación de API para búsqueda de empleos con Java y CLI

Conclusiones

39

Programación Funcional en Java: Conceptos y Aplicaciones

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación de APIs RESTful con Feign y Spring Boot

34/39
Recursos

¿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.

  1. 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 @Headers para definir los encabezados HTTP necesarios y @RequestLine para 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:

  1. Crear una Clase de Utilidad:

    Se puede crear una clase ApiFactory con 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);
        }
    }
    
  2. 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.

Aportes 13

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sugiero que por el tiempo de la creación del curso y la deprecación del repositorio de git el curso debe ser actualizado para poder realizar los ejercicios de la clase y entender los conceptos de este mismo. Por otra parte seria bueno un curso de gradle para reforzar los proyectos en java

DEPRECATION!!
AVISO!!
Deprecation notice: GitHub Jobs site
La api de github Jobs ya no se encuentra disponible desde el 19 de Agosto del 2021

Les recomiendo el plugin freefair.lombok.

Ya que el Job Search fue deprecada voy a usar el API de Rick & Morty.

No entiendo muy bien la parte de generics. Por que ocupar la doble T en la declaración del método despues del static?.

static <T> T buildAPI(Class<T> clazz, String url) {

Yo tuve un problema al tratar de importar el feign.gson.GsonDecoder;… mi solución fue cambiar la dependencia de openfeign

<
// https://mvnrepository.com/artifact/io.github.openfeign/feign-gson
    implementation group: 'io.github.openfeign', name: 'feign-gson', version: '9.4.0'

> 

Sierisimo ¿Tienes una extensión de navegador para visualizar el JSON?

Muy bien con la interfaz APIFunction tendremos un medio para poder decodificar los datos y luego dirigirlos a la Url establecida.

Gracias 😃

ok

esa interfaz generica es mucha magia gracias.