2016-08-19 51 views
1

是否有一個clojure庫,提供查詢主要clojure庫(如clojars和maven中心)功能?我在想是這樣的:圖書館查詢主要clojure回購

(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

它看起來像clojars有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還提供了一個返回json響應的搜索API:https://github.com/clojars/clojars-web/wiki/Data#json-search-results –