On 9 June 2015 at 23:16, Dru Sellers <d...@drusellers.com> wrote:

> @James do you only have one component that has all of your routes? or do
> you have each component supply its own routes? If you imagine a component
> providing its own routes, I'd love to see a duct example with two routes
> set up.
>
> I believe that would be multiple endpoint components.
>
> Looking at
> https://github.com/weavejester/duct/blob/master/duct/src/duct/component/endpoint.clj#L7
> I'm guessing that duct only expects one endpoint-component - is that
> correct?
>

No, you can have as many endpoint components as you want.

Duct has a handler component that looks for endpoint components in its
dependencies, and combines their routes together using
compojure.core/routes.

One of the ideas in Duct is to group routes together by purpose, to achieve
the modularity of micro-service architecture without the overhead.

For example, let's say you have endpoints foo, bar and baz. Then your
system builder in Duct would look like:

(defn new-system [config]
  (let [config (meta-merge base-config config)]
    (-> (component/system-map
         :http (jetty-server (:http config))
         :app  (handler-component (:app config))
         :foo  (endpoint-component foo-endpoint)
         :bar  (endpoint-component bar-endpoint)
         :baz  (endpoint-component baz-endpoint))
        (component/system-using
         {:http [:app]
          :app  [:foo :bar :baz]}))))

- James

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