2016-08-19 2 views
1

Есть ли библиотека clojure, которая предоставляет функции для запросов к основным репозиториям clojure (например, clojars и maven central)? Я имел в виду что-то вроде этого:библиотека для запроса основных clojure repos

(query-repos "reage") 
=> {reagent ("0.6.0-SNAPSHOT" "0.6.0-rc" "0.6.0-alpha2" ...) 
    reagent-forms ("0.5.25" ...)} 

В clj-ancient есть функция version-string!, которая, однако, кажется, работает только, если правильное название артефакта дано. (например, 'reagent)

ответ

1

Похоже, клоары имеют an API. Для начала нужно быть достаточно. Просто нужно clj-http.

(defn get-release 
    [lib] 
    (let [url (str "https://clojars.org/api/artifacts/" lib) 
     resp (:body (clj-http.client/get url {:accept :edn})) 
     info (clojure.edn/read-string resp)] 
    (println "Name: " (:jar_name info) "\nLatest release: " (:latest_release info)))) 


user=> (get-release "reagent") 
Name: reagent 
Latest release: 0.6.0-rc 

теперь я понимаю, что вы можете быть только ищет способ сделать частичное совпадение, так как вы не знаете имя полного репо, поэтому, возможно, это не ответ на ваш вопрос, но это может помочь другим, так что я Я оставлю это. В приведенной выше ссылке есть информация о полных списках, которые находятся в виде простого текста и могут быть легко проанализированы, и вы можете легко найти частичные совпадения.

+0

Обратите внимание, что Clojars также предоставляет API поиска, который возвращает ответ json: https://github.com/clojars/clojars-web/wiki/Data#json-search-results –

 Смежные вопросы

  • Нет связанных вопросов^_^