clj-http/get url {:as:json} не работает в скрипте, но в REPL
Я экспериментирую с Clojure и Leiningen. Мне удалось выполнить следующую строку в REPL:
(print (:body (client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))
Я создал проект с lein new http
, Когда я запускаю следующие строки с lein run
тогда принуждение к JSON не работает. Он просто печатает правильную строку JSON.
(ns http.core
(:require [clj-http.client :as client])
(:use clojure.pprint))
(defn -main
[]
(print
(:body
(client/get "https://coinbase.com/api/v1/prices/spot_rate?currency=CAD" {:as :json}))
вывод сценария
{"amount":"306.89","currency":"CAD"}
Есть идеи, что случилось?
2 ответа
Решение
Я не знаю точно, что изменилось, но [clj-http "1.1.2"] ведет себя так, как вы хотите.
Как оказалось, в clj-http версии 2.0.0 произошли серьезные изменения. Теперь нужно явно перечислить необязательные зависимости в project.clj
, После того как я добавил
[cheshire "5.5.0"]
к моему списку зависимостей программа работала как положено. Пожалуйста, смотрите документацию для изменения здесь.