2016-08-19 1 views
1

Gibt es eine Clojure-Bibliothek, die Funktionen für die Abfrage der wichtigsten Clojure-Repositories (wie Clojars und Maven Central) bietet? Ich dachte an so etwas wie diese:Bibliothek zur Abfrage der wichtigsten Clojure-Repos

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

In clj-ancient gibt es die Funktion version-string!, die jedoch scheint nur zu funktionieren, wenn der richtige Artefakt Name gegeben wird. (wie 'reagent)

Antwort

1

Es sieht aus wie Clojars hat an API. Das Folgende sollte ausreichen, um loszulegen. Benötigen Sie nur 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 

Ich weiß jetzt, dass Sie nur nach einer Möglichkeit, sein können, eine teilweise Übereinstimmung zu tun, da Sie nicht die vollen Repo-Namen erkennen, vielleicht ist dies nicht Ihre Frage beantworten, aber es kann andere helfen, so dass ich Ich werde es verlassen. Der obige Link enthält Informationen über vollständige Auflistungen, die im Klartext sind und leicht analysiert werden können, und auf diese Weise können Sie teilweise Übereinstimmungen finden.

+0

Beachten Sie, dass Clojars auch eine Such-API bereitstellt, die eine JSON-Antwort zurückgibt: https://github.com/clojars/clojars-web/wiki/Data#json-search-results –

Verwandte Themen