2016-08-19 52 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 –