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"]

к моему списку зависимостей программа работала как положено. Пожалуйста, смотрите документацию для изменения здесь.

Другие вопросы по тегам