Skip to content

Instantly share code, notes, and snippets.

@duckyuck
Created October 1, 2013 17:05
Show Gist options
  • Save duckyuck/6781773 to your computer and use it in GitHub Desktop.
Save duckyuck/6781773 to your computer and use it in GitHub Desktop.
Applying middleware to selected routes
(ns composable-compojure.handler
(:use compojure.core)
(:require [compojure.handler :as handler]
[ring.util.response :refer [response]]))
(defn middleware
[handler value]
(fn [request]
(handler (update-in request [:from-middleware] (partial cons value)))))
(defn respond [request] (response (str ":from-middleware = " (:from-middleware request))))
`
(def foo-routes
(context
"/foo" []
(-> (routes
(GET "/" request (respond request)))
(middleware "foo"))))
(def bar-routes
(context
"/bar" []
(-> (routes
(GET "/" request (respond request)))
(middleware "bar"))))
(def handler
(handler/site
(routes foo-routes
bar-routes)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment