This is not a full example, but I ran into the same issue when building an 
app for the Clojure Cup not too long ago. The general approach I used is 
this:

   - create the Compojure routes in a function with the components I need 
   as parameters
   - declare the web server itself (I used httpkit) as a component with the 
   dependencies needed for the routes
   - build a handler from the routes within the web server component's 
   start function, passing the dependencies into the route-generating function

I'm no Clojure expert, and this was my first project using Stuart Sierra's 
Component library, so I would be interested to hear some feedback from the 
more seasoned Clojure folks here.

Here is the relevant file from my project if you are interested: 
https://github.com/kendru/tourbillon/blob/master/src/tourbillon/www/core.clj#L67

On Tuesday, October 7, 2014 11:33:33 AM UTC, JPatrick Davenport wrote:
>
> Hello,
> I'm trying to create a web app. I'm having the damnest time trying to 
> figure out how to layer my application. I want to pass protocol 
> implementations to the routes. The protocols define interacting with 
> various data sources that I need down the way. 
>
> I saw Stuart Sierra's talk about Component. It looks to satisfy my needs. 
> What I can't find is an example project for component and compojure. 
> Unfortunately the project com.stuartsierra/component is poorly named. 
> Googling for component + compojure brings back mostly false positives.
>
> Does anyone have a gist or blog post about how to do this?
>
> Thanks,
> JPD
>

-- 
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