Compojure routes are checked in order until one matches. You've set up your
www-routes to match all possible routes, as you have a "catch-all"
not-found route at the bottom.

- James


On 7 August 2014 13:17, Jonathon McKitrick <jmckitr...@gmail.com> wrote:

> I'm serving up some html and js content, and using handler/site for that.
> I have a separate handler/api group of routes under the "/api" context.
>
> If I include the api routes before the site routes, the site works fine.
> If the www routes come first, the api calls fail, probably because the
> (route/resources "/") at the end of the site routes catches that call and
> returns null.
>
> OTOH, if I try to use friend with the api routes, it breaks the friend
> wrapping of the www calls.
>
> (defroutes api-routes
>   (context "/api" []
>             .....
>            (route/not-found "ERROR")))
>
> (defroutes www-routes
>   (GET "/admin" req (friend/authorize #{::admin} "Admin only"))
>   (GET "/authorized" req (friend/authorize #{::user} "Users only"))
>   (GET "/home" [] (response/file-response "home.html" {:root
> "resources/public"}))
>   (GET "/login" [] (response/file-response "login.html" {:root
> "resources/public"}))
>   (friend/logout (ANY "/logout" req (response/redirect "/")))
>   (GET "/" [] (response/redirect "index.html"))
>   (route/resources "/")
>   (route/not-found "Not Found"))
>
> (def app
>   (routes
>    (-> www-routes
>        (friend/authenticate {;:allow-anon? true
>                              ;;:login-uri "/login.html"
>                              ;:default-landing-uri "/"
>                              ;:redirect-on-auth? "/home"
>                              ;:unauthorized-handler #(response/status
> (response/response "NO") 401)
>                              ;:login-failure-handler #(response/response
> "OOPS")
>                              :credential-fn (partial
> creds/bcrypt-credential-fn users)
>                              :workflows [(workflows/interactive-form)]})
>        ;;(wrap-resource "public")
>        ;wrap-content-type
>        ;wrap-not-modified
>        ;;wrap-reload
>        handler/site)
>    (-> api-routes
>        handler/api
>        ;;wrap-reload
>        wrap-restful-format)))
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to