Enviando una solicitud http

Clojure:
Enviando una solicitud http

Cómo hacerlo:

Clojure ofrece varias bibliotecas para realizar solicitudes HTTP. Vamos a usar clj-http por su simplicidad y popularidad.

; Asegúrate de tener clj-http añadido a tu proyecto
(require '[clj-http.client :as client])

; Enviar una simple solicitud GET
(def respuesta-get (client/get "https://jsonplaceholder.typicode.com/posts/1"))
(println respuesta-get)

; Enviar una solicitud POST con datos
(def respuesta-post (client/post "https://jsonplaceholder.typicode.com/posts"
                  {:body (json/write-str {:title "Hola" :body "Mundo" :userId 1})
                   :headers {"Content-Type" "application/json"}}))
(println respuesta-post)

Salida de ejemplo para la solicitud GET:

{:status 200, :headers {...}, :body "..."}

Salida de ejemplo para la solicitud POST:

{:status 201, :headers {...}, :body "..."}

Deep Dive:

Historialmente, las solicitudes HTTP en Clojure se han hecho con diversas bibliotecas, pero clj-http se ha convertido en el estándar de facto por su interfaz directa y conjunto completo de características.

Alternativas:

  • http-kit: un cliente y servidor HTTP para Clojure que destaca por su rendimiento.
  • aleph: utiliza la biblioteca Netty y es conocido por su modelo asíncrono.

Detalles de implementación:

  • clj-http usa Java Interop bajo el capó para hacer uso de las bibliotecas de HTTP de Java, combinando la facilidad de Clojure con la solidez del ecosistema Java.
  • Las solicitudes se pueden personalizar extensamente, permitiendo ajustar parámetros como tiempos de espera, manejo de redirecciones, y adjuntar datos en varias formas.

Ver también: