Rook is a set of middleware and handlers to enable metadata-based routing for Ring web applications.
The intention is to expose a Clojure namespace as a web service resource; there’s a default mapping of HTTP verbs and paths to function names; these can be extended or overridden by metadata on the functions in the namespace.
The end result is that a compliant web service resource can be created in very little code.
Rook also supports Swagger 2.0: a detailed JSON description of your web service is generated directly from the functions and metadata.
Rook is available under the terms of the Apache Software License 2.0.