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.