2016-08-19 1 views
1

clojure 라이브러리 (예 : clojars 및 maven 중심)를 쿼리하는 기능을 제공하는 clojure 라이브러리가 있습니까? 나는 이런 식의 생각 : clj-ancient에서주요 clojure repos를 쿼리하는 라이브러리

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

그러나 올바른 아티팩트 이름이 주어진 경우에만 작동하는 것 같다 기능 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 

나는 당신이 어쩌면이 답변으로 문제가 해결되지 않는, 전체 REPO 이름을 모를 수 있기 때문에 부분적으로 일치 할 수있는 방법을 찾고에만 수 있다는 것을 이제 실현,하지만 다른 사람을 내가 그렇게 도움이 될 수 있습니다 그것을 떠날거야. 위의 링크는 일반 텍스트로되어 있고 쉽게 파싱 될 수있는 전체 목록에 대한 정보가 있으며 부분 일치를 쉽게 찾을 수 있습니다.

+0

Clojars는 json 응답을 반환하는 검색 API도 제공합니다. https://github.com/clojars/clojars-web/wiki/Data#json-search-results –