title: URI-based Versioning for AWS API Gateway
body: <p>I am struggling to understand how AWS API Gateway wants me to organise my APIs such that versioning is straightforward. For example, let's say I have a simple API for getting words from a dictionary, optionally filtering the results by a query parameter. I'd like to have v1 of this be available at:</p>
  
  <pre><code>https://&lt;my-domain&gt;/v1/names?starts-with=&lt;value&gt;
  </code></pre>
  
  <p>However, the closest I can get API Gateway is at</p>
  
  <pre><code>https://&lt;my-domain&gt;/names/v1?starts-with=&lt;value&gt;
  </code></pre>
  
  <p>... which is quite backwards.</p>
  
  <p>What I've got in the console is "Names API" with a "v1" resource supporting a GET method. I also have my custom domain setup to map a base path of "names" to "Names API" and stage "test". The Base path must be unique so putting "v1" there is only a short-term win; once I create my second API (e.g. Numbers API) it'll have a v1, too, and I won't be able to create a second mapping.</p>
  
  <p>Any and all help is greatly appreciated as I'm out of ideas now.</p>