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.

Reply via email to