title: What is an appropriate URI for a user registration form in a RESTful setting?
body: <p>I'm working on a web application under Laravel and I'm trying to be as RESTful as I can, but admittedly this is the first time writing this kind of application.</p>
  
  <p>I'm specifically trying to create RESTful URI's for the controllers of my project.</p>
  
  <p>So far I have (in pseudo code)...</p>
  
  <pre><code>URI                 Goes to...      Desc
  ---                 ----------      ----
  / GET
      if logged in    dashboard GET
      else            frontpage GET
  
  login GET           login GET       login form
  login POST          login POST      attempt login
  login DELETE        login DELETE    logout
  
  user GET
      if logged in    user GET        show user control panel
      else            login GET       redirect to the login w/ error
  </code></pre>
  
  <p>So far so good, but how should I go about creating a new user?</p>
  
  <p>I had a couple of ideas, for example:</p>
  
  <pre><code>URI                 Goes to...      Desc
  ---                 ----------      ----
  user/create GET     register GET    show the create user form
  user/create POST    register POST   attempt to create a new user
  </code></pre>
  
  <p>So we use a <code>register</code> controller here, but we hide it behind the user URI. </p>
  
  <p>Advantage here is that we stick to HTTP actions (just GET and POST), and we create a nice readable URI.</p>
  
  <p>Disadvantage is that our URI does not accurately represent our controller.</p>
  
  <pre><code>URI                 Goes to...      Desc
  ---                 ----------      ----
  register GET        register GET    show the create user form
  register POST       register POST   attempt to create a new user
  </code></pre>
  
  <p>In this case we have A. used HTTP controls, B. created a URI that is a representation of our controller, and C. created a nice readable URI, but unfortunately our URI isn't really representational of the data. In no way is this <code>register</code> controller representative of our user.</p>
  
  <p>Which is more appropriate? Why? Is there a better way? Thanks!</p>