Inviare una richiesta http

Clojure:
Inviare una richiesta http

How to:

In Clojure, puoi usare la libreria clj-http per fare richieste HTTP facilmente.

(require '[clj-http.client :as client])

; GET Request
(def response (client/get "https://jsonplaceholder.typicode.com/posts/1"))
(println response)

; POST Request con body in JSON
(def post-response 
  (client/post "https://jsonplaceholder.typicode.com/posts"
               {:headers {"Content-Type" "application/json"}
                :body (json/write-str {:title "Clojure" :body "Article" :userId 1})}))
(println post-response)

L’output sarà un mappa Clojure con status, headers, e body della risposta, dipendendo dal tipo di richiesta fatta.

Deep Dive:

Prima delle librerie come clj-http, mandare richieste HTTP in Clojure richiedeva più passaggi e meno astrazioni, tipicamente usando Java interop. clj-http incapsula queste complessità rendendo il processo più semplice e idiomatico per Clojure.

Alternatives a clj-http includono http-kit e aleph, ognuna con le proprie peculiarità in termini di performance e stile di programmazione.

Per quanto riguarda l’implementazione, clj-http utilizza Apache HttpClient sotto il cappuccio, una libreria Java collaudata e affidabile. Gestisce anche connessioni HTTPS, reindirizzamenti, cookie e molte altre features HTTP.

See Also: