<div dir="ltr"><div><div>Loic, my idea about routing is that router is a piece of software that 
translates input http request into presentation, convenient for handler 
and selects proper handler for this with proper arguments.<br><br></div>I don't understand your logic: you allow to run regexp to validate if constraint is a digit:   "/users/:user_id", [{user_id,fun() -> .. end}], but you are strongly against validating method in constraints.<br>
<br></div>You tell me to spread logic between your router and my router. You tell me that I need to use two routers that will somehow interfere with each other. What is the idea? I really don't understand.<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Wed, Feb 13, 2013 at 2:39 PM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 02/13/2013 11:34 AM, Max Lapshin wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
handle(Req, State) -><br>
     handle_method(cowboy_req:get(<u></u>method, Req), Req, State).  will require<br>
<br>
<br>
handle_method(<<"GET">>, Req, State)<br>
handle_method(<<"DELETE">>, Req, State)<br>
handle_method(Other, Req, State)<br>
   here we copy from module to module default reply on "method not<br>
supported" or 404, whatever we choose.<br>
<br>
<br>
with method constraints code can look so:<br>
<br>
<br>
init(_, Req, [Action]) -><br>
  {ok, Req, Action}.<br>
<br>
<br>
handle(Req, show) -><br>
   ..<br>
<br>
handle(Req, destroy) -><br>
   ..<br>
<br>
handle(Req, list) -><br>
   ..<br>
   .<br>
<br>
And no "default handler" because it is not required. Only good requests<br>
can pass to this handler.<br>
</blockquote>
<br></div></div>
Then in your init function do something like your_lib:route_method(Req) which returns {ok, Req, Action} if it's good or {shutdown, ...} if not? It'll do exactly what you just said.<div class="HOEnZb"><div class="h5">
<br>
<br>
-- <br>
Loïc Hoguin<br>
Erlang Cowboy<br>
Nine Nines<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br>
</div></div></blockquote></div><br></div>