Tout d'abord, je pense que vous êtes peu probable de trouver un seul réduite solution pour faire tout cela en Clojure (sauf sous la forme d'une bibliothèque Java pour être utilisé par le biais de l'interopérabilité). Ce qui est en train de devenir Clojure standard du Web pile comprend un certain nombre de bibliothèques qui se mélangent et assortir de toutes sortes de façons (car ils sont heureux ont tendance à être parfaitement compatible).1
Voici une liste de quelques blocs de construction qui pourraient vous être utiles:
Anneau -- Clojure de base de la requête HTTP de la manipulation de la bibliothèque; tous les autres webby bibliothèques (pour l'écriture de routes &c.) que je connais sont compatibles avec l'Anneau. L'anneau est activement développée, a une forte communauté, est très bien écrit et agréable à SPEC de document exposant sa philosophie de conception. Ce blog fournit un bon exemple de la façon dont il pourrait être utilisé (réagir à GitHub s'engage).
Banc de sable -- actuellement une bibliothèque d'authentification, d'autres types de fonctionnalités de prévu; le sous-développement.
Compojure -- une mature et robuste bibliothèque qui offre une belle DSL pour l'écriture des itinéraires pour être utilisé sur le dessus de l'Anneau. Cela vous donnera la belle gestion des paramètres d'URL.
Compojure-mains -- "une bibliothèque pour la construction d'applications Reposant sur le dessus de Compojure". Compojure-repos est, autant que je peux dire, dans ses premiers stades de développement; vous pourriez peut-être voir cela comme une occasion d'influencer sa conception. :-)
Pour traiter du XML, il y a clojure.contrib.lazy-xml
(et l'aide de la bibliothèque clojure.contrib.zip-filter.xml
) et Enlive (le haut- clojure.xml
de l'espace de noms n'est pas très utilisable); ils pourront être utilisés en tandem (bien que pour vos fins de l'ancienne pourrait suffire).
Pour JSON, il y a une bibliothèque dans contrib et clojure-json (et je pense qu'il y avait au moins une autre lib j'ai l'impression d'oublier maintenant...); choisir celui que vous aimez le mieux.
Tout sera parfaitement à l'aise avec un REPL de développement axée sur le style (voir la accepté de répondre à cette DONC, la question d'un Anneau truc qui est très bien pour le but ici). Je suppose que la collection ci-dessus des liens ne laisser quelques taches aveugles (en particulier, l'authentification de l'histoire est encore aplanies, autant que je puis dire), mais j'espère que c'est un bon début.
1Le seul package de solution pour la construction d'webapps en Clojure que je connaisse est en Conjure, inspiré par les Rails; malheureusement, je dois avouer que je ne connais pas beaucoup, donc si vous vous sentez intéressé, suivez le lien et regardez autour de vous les sources, wiki &c.