Prima di tutto, penso che e 'difficile trovare una singola soluzione shrinkwrapped a fare tutto questo in Clojure (se non nella forma di una libreria Java per essere utilizzato attraverso interoperabilità). Quello che sta diventando lo stack Web standard di Clojure comprende un numero di librerie che le persone mescolano e abbinano in tutti i modi (dal momento che sono fortunatamente tendenzialmente perfettamente compatibili).
Ecco un elenco di alcuni blocchi di costruzione che potreste trovare utili:
Ring - dati di base biblioteca richiesta HTTP la manipolazione del Clojure; tutte le altre librerie webby (per scrivere i percorsi & c.) che io sappia sono compatibili con Ring. Ring è attivamente sviluppato, ha una solida community, è molto ben scritto e ha un documento SPEC dettagliato che ne illustra la filosofia di design. This blog post fornisce un bell'esempio di come potrebbe essere utilizzato (reagendo a commit GitHub).
Sandbar - attualmente una libreria di autenticazione, più tipi di funzionalità programmati; in fase di sviluppo.
Compojure - una libreria matura e robusta che fornisce un bel DSL per scrivere percorsi da utilizzare sopra Ring. Questo ti darà la bella gestione dei parametri URL.
Compojure-rest - "una libreria per la creazione di applicazioni RESTful su Compojure". Compojure-riposo è, per quanto posso dire, nelle sue prime fasi di sviluppo; forse potresti vederlo come un'opportunità per influenzare il suo design.:-)
Per trattare con XML, c'è clojure.contrib.lazy-xml
(e l'aiutante libreria clojure.contrib.zip-filter.xml
) e Enlive (il built-in clojure.xml
spazio dei nomi non è attualmente molto usabile); questi sarebbero usati in tandem (anche se per i tuoi scopi il primo potrebbe bastare).
Per JSON, c'è una biblioteca in contrib e clojure-json (ed io penso c'era almeno un altro lib mi sembra di essere dimenticare ora ...); scegli quello che ti piace di più.
Tutto sarà perfettamente felice con uno stile di sviluppo REPL-driven (vedere la risposta accettato di this SO question per un trucco anello che è molto molto per lo scopo qui). Suppongo che la raccolta di collegamenti sopra riportata lasci alcuni punti ciechi (in particolare, la storia dell'autenticazione è ancora in via di estinzione, per quanto posso dire), ma si spera che sia un buon inizio.
L'unica soluzione single-pacchetto per la costruzione di webapps in Clojure, che io sappia è Conjure, ispirato da Rails; sfortunatamente devo ammettere che non ne so molto, quindi se ti senti interessato, segui il link e guarda le fonti, wiki & c.
fonte
2010-07-05 17:22:37
Potrebbe anche essere utile guardare questo progetto, è un webshop sperimentale ben documentato REST api. Ha alcune delle caratteristiche che elencherai. https://github.com/i-schuetz/clojushop – Ixx