2015-05-05 2 views
1

Я работаю с Clojure, Ring и Compojure в течение некоторого времени, но я все еще довольно новый.Compojure с настраиваемым базовым маршрутом

Что мне нужно знать, как сделать настраиваемый базовый маршрут, например:

/:base-route 

/:base-route/user 

/:base-route/settings 

/: базовый маршрут может быть различным (апи, компания, материал, ...) и будет зависят от внутренней проверки. То, что я не могу сделать, это создать универсальную проверку для всех маршрутов, чтобы узнать, есть ли /: базовый маршрут имеет соответствующее значение. Например /: базовый маршрут выполнен с возможностью /апи, но пользователь пытается /компании/пользователя -> ответ должен быть 404.

ответ

0

Итак, способ сделать это с регулярное выражение и контекст:

(defroutes routes 
    (context ["/:base-route" :base-route (re-pattern base-route)] [base-route] 
      (GET "/user" [] (str "base: " base-route " user")) 
      (GET "/settings" [] (str "base: " base-route " settings")))) 
+0

Вы можете пометить ваши вопросы, как было указано. –

+0

Я знаю это, но я забыл. Я не ждал с нетерпением 24 часа, освежая StackOverflow ... – Unknown

+0

Просто дружелюбное предложение. –