2013-08-08 27 views
5

Właśnie zacząłem uczyć się Clojure i zmagam się ze zmianami API w ciągu ostatnich kilku lat. W szczególności, w 1.2 nie było funkcja http-agent w contrib co pozwoliło na bardzo prostych żądań http:Tworzenie żądań HTTP za pomocą Clojure

(http-agent "http..." :method "POST" :body "foo=1") 

Funkcja ta została usunięta i wydaje się, że teraz należy użyć clojure.java.io lub rozwiązanie innej firmy, takie jak http-kit lub clj-http.

Jestem naprawdę zaskoczony, ponieważ java.io wydaje się być znacznie niższy poziom i traci prostotę lub http-agent i tworzenie żądań http wydaje się czymś, co powinno znajdować się w głównym zestawie bibliotek (zdaję sobie sprawę, że jest to bardzo subiektywne).

Jakie są przesłanki do usunięcia agenta http? Czy nie pasowało to do głównej filozofii Clojure? A jakie są zalecenia dla najlepszej biblioteki do użycia dla podstawowych żądań HTTP?

Odpowiedz

7

Nie mogę składać autorytatywnych oświadczeń na temat powodów, dla których jakaś część starego contrib nie dotarła do nowego contribu, ale ogólnie rzecz biorąc, sytuacja się poruszyła, gdy wystarczająco dużo osób było zainteresowanych, w tym niektórzy zdolni i chętni do utrzymania nowe biblioteki. Być może w tym przypadku po prostu nie było wystarczająco dużo zainteresowania.

Dodatkowo niezwykle proste jest tworzenie projektów Clojure na wielu bibliotekach i nie jest jasne, czy obecność biblioteki klienta http w głównym zestawie bibliotek lub contrib uczyniłoby to prostszym i/lub łatwiejszym dla programistów, niż teraz, z doskonałymi opcjami dostępnymi w szerszym ekosystemie.

Co do konkretnych przykładów takich doskonałych opcji, chciałbym wskazać kierunku clj-http i http.async.client (w kolejności alfabetycznej, który z nich jest odpowiedni, zależy od tego, czy chcesz korzystać z wystrzelenie swoich żądań asynchronicznie).

+0

Michał, wielkie dzięki za tę odpowiedź. Moje pytanie wynika z niewiedzy o środowisku Clojure, a twoja odpowiedź zrobi kolejny krok do zrozumienia tego. Dziękuję również za rekomendacje. – Alistair77

Powiązane problemy