<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
vNext seems an interesting idea, I thought the implementation way for Nova<br>
a little. "API Route Discoverability" is a nice design, but a root "/" URL<br>
will conflict on current "list versions" API.<br>
Maybe there would be a workaround.<br>
</blockquote>
<br></div></div>
Completely agreed, Ken'ichi. The "root" URL that returns the JSON-Home doc in the vNext API is actually *after* the version in the URI, though...<br>
<br>
So, the JSON-Home doc would be returned from:<br>
<br>
 <a href="http://compute.example.com/vNext/" target="_blank">http://compute.example.com/<u></u>vNext/</a><br>
<br>
Of course, replacing "vNext" with "v4" or "v42" or whatever the "next" major version of the API would be. The real root would still return the versions list as it exists today, with a 302 Multiple Choice.<br>
<br></blockquote><div><br></div><div>JSON Home and your JSON versions document can exist on the same path. The JSON Home response should be returned when the Accept header is "application/json-home"[1], and the JSON document when the Accept header is "application/json". Webob makes it easy to support qvalues[2] for the accept header.<br><br></div><div>This is how Keystone works for Juno, if you request `/` with "Accept: application/json-home", you get the JSON Home document with paths like `v3/auth/tokens`. If you request `/v3` with "Accept: application/json-home", you get the JSON Home document with the paths like `/auth/tokens`. This way, if your auth endpoint is / or /v3 the client can use the json-home document. # TODO(blk-u): Implement json-home in keystoneclient.<br></div><div><br>[1] <a href="https://tools.ietf.org/html/draft-nottingham-json-home-03#section-2">https://tools.ietf.org/html/draft-nottingham-json-home-03#section-2</a><br>[2] <a href="http://tools.ietf.org/html/rfc2616#section-3.9">http://tools.ietf.org/html/rfc2616#section-3.9</a><br><br></div><div>- Brant<br><br></div></div></div></div>