Yes, though (routes api-routes) is the same as api-routes. You could write
your code as:
(def api-handler
(-> (handler/site api-routes)
(wrap-restful-response)))
(def www-handler
(-> (handler/site www-routes)
(wrap-resource "public")))
(def app
(wrap-reload (routes api-handler www-handler))
You probably want to put the "not-found" route in with your www-routes.
Incidentally, in future versions of Compojure I'm going to deprecate
handler/site in favour of ring-defaults
<https://github.com/ring-clojure/ring-defaults>. Using that library, your
code would look like:
(def api-handler
(-> api-routes
(wrap-defaults api-defaults)
(wrap-restful-response)))
(def www-handler
(-> www-routes
(wrap-defaults site-defaults)))
(def app
(wrap-reload (routes api-handler www-handler))
- James
On 28 June 2014 20:19, Jonathon McKitrick <[email protected]> wrote:
> Think I got it:
>
> (def app
> (routes (-> (handler/api
> (routes
> api-routes
> ))
> (wrap-restful-response)
> (wrap-reload))
> (-> (handler/site
> (routes
> www-routes
> (route/not-found "Not Found")))
> (wrap-reload) ; dev only
> (wrap-resource "public"))))
>
>
>
> On Saturday, June 28, 2014 2:25:57 PM UTC-4, Jonathon McKitrick wrote:
>>
>> I'd like my app to server the WWW content as well as the API for the
>> client to call. How can I used different middleware with each?
>>
>> Here's what I have so far:
>>
>> (def app
>> (-> (handler/site
>> (routes
>> www-routes
>> api-routes
>> ;; Should this replace the line below?
>> ;;(wrap-file "public" )
>> (route/resources "/")
>> (route/not-found "Not Found")))
>> ;; Can we just wrap API handlers?
>> (wrap-restful-response)))
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected].
> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.