<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 2014年09月23日 04:27, Brant Knudson
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAHjeE=QSVLsU52-vwg_542ZzYuDn6r3tfvmH-RAJpwfMOb4xpA@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Fri, Sep 19, 2014 at 1:39 AM, Alex
            Xu <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:xuhj@linux.vnet.ibm.com" target="_blank">xuhj@linux.vnet.ibm.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">Close to Kilo, it is
              time to think about what's next for nova API. In Kilo, we<br>
              will continue develop the important feature micro-version.<br>
              <br>
              In previous v2 on v3 propose, it's include some
              implementations can be<br>
              used for micro-version.<br>
              (<a moz-do-not-send="true"
href="https://review.openstack.org/#/c/84695/19/specs/juno/v2-on-v3-api.rst"
                target="_blank">https://review.openstack.org/#/c/84695/19/specs/juno/v2-on-v3-api.rst</a>)<br>
              But finally, those implementations was considered too
              complex.<br>
              <br>
              So I'm try to find out more simple implementation and
              solution for micro-version.<br>
              <br>
              I wrote down some ideas as blog post at:<br>
              <a moz-do-not-send="true"
                href="http://soulxu.github.io/blog/2014/09/12/one-option-for-nova-api/"
                target="_blank">http://soulxu.github.io/blog/2014/09/12/one-option-for-nova-api/</a><br>
              <br>
              And for those ideas also already done some POC, you can
              find out in the blog post.<br>
              <br>
              As discussion in the Nova API meeting, we want to bring it
              up to mail-list to<br>
              discussion. Hope we can get more idea and option from all
              developers.<br>
              <br>
              We will appreciate for any comment and suggestion!<br>
              <br>
              Thanks<br>
              Alex<br>
              <br>
              <br>
            </blockquote>
            <div><br>
            </div>
            <div>Did you consider JSON Home[1] for this? For Juno we've
              got JSON Home support in Keystone for Identity v3 (Zaqar
              was using it already). We weren't planning to use it for
              microversioning since we weren't planning on doing
              microversioning, but I think JSON Home could be used for
              this purpose.<br>
              <br>
            </div>
            <div>Using JSON Home, you'd have relationships that include
              the version, then the client can check the JSON Home
              document to see if the server has support for the
              relationship the client wants to use.<br>
            </div>
            <div><br>
              [1] <a moz-do-not-send="true"
                href="http://tools.ietf.org/html/draft-nottingham-json-home-03">http://tools.ietf.org/html/draft-nottingham-json-home-03</a><br>
              <br>
            </div>
            <div>- Brant<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    Brant, thanks for your comment!<br>
    <br>
    In the micro-version spec discussion, there are discussion JSON-Home
    also. (At line 158
<a class="moz-txt-link-freetext" href="https://review.openstack.org/#/c/101648/1/specs/juno/api-microversions-alt.rst">https://review.openstack.org/#/c/101648/1/specs/juno/api-microversions-alt.rst</a>)<br>
    And people like it. JSON-Home is good choice for API discoverable.<br>
    <br>
    That didn't describe in the blog post. The blog post is most focus
    on implement multiple version support in the wsgi infrastructure.
    But the proposed implementation is good for support API
    discoverable, it propose defining json-schema for each version API,
    not use tranlsation stuff. Then the json-schema can be exposed to
    user easily (I guess Json-schema in the Json-home), make the API
    discoverable.<br>
    <br>
    The micro-version specs is also need discussion in the K, it defined
    how can we bump the version, how to interact with client. But
    whatever the wsgi infrastructure need support multiple version. So I
    begin to think about it.<br>
    <br>
    <blockquote
cite="mid:CAHjeE=QSVLsU52-vwg_542ZzYuDn6r3tfvmH-RAJpwfMOb4xpA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
OpenStack-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>