Clojure:
Enviando uma requisição HTTP
Como Fazer:
Primeiro, adicione a biblioteca clj-http ao seu projeto edn:
:dependencies [[clj-http "3.12.3"]]
Depois, esquente os dedos e code:
(require '[clj-http.client :as client])
;; GET simples
(let [response (client/get "http://httpbin.org/get")]
(println (:status response))
(println (:headers response))
(println (:body response)))
;; POST com dados
(let [response (client/post "http://httpbin.org/post" {:form-params {:foo "bar"}})]
(println (:status response))
(println (:body response)))
Isso vai imprimir o status da resposta, cabeçalhos, e o corpo da mensagem.
Imersão:
Lá no começo, HTTP era só um meio de buscar documentos. Hoje, é a espinha dorsal da web.
Alternativas modernas incluem GraphQL ou WebSockets para necessidades mais complexas ou em tempo real.
Detalhes da implementação: Usar clj-http é simples, mas tem suas profundezas. Por baixo dos panos, clj-http usa a biblioteca Apache HttpComponents para fazer a conexão e processar a resposta. Pode ser bloqueante ou assíncrono, dependendo de como você usa.
Veja Também:
- Documentação clj-http
- Tutorial HTTP da Mozilla para um entendimento sólido do protocolo: https://developer.mozilla.org/en-US/docs/Web/HTTP
- Clojure para os curiosos: Pra quem quer se aprofundar em Clojure.