<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" >Typical use case...&nbsp;I write a fancy bindings for wok RESTful APIs say, in Haskell (because yeah! ;-) ). For the given endpoint (let's say /abc) there is a JSON response you get for the GET method. Everything is working fine until wok developers&nbsp;figure out that with the changing needs may be the JSON sent as a response by /abc GET might need to change. At this point if our RESTful API supports versioning poor Haskell loving engineers can still be sure that their&nbsp;bindings will work properly while giving the flexibility to wok developers to change the product with changing requirements.&nbsp;</div>
<div dir="ltr" >&nbsp;</div>
<div dir="ltr" >&nbsp;</div>
<div dir="ltr" >&nbsp;</div>
<blockquote data-history-content-modified="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr" >----- Original message -----<br>From: Aline Manera &lt;alinefm@linux.vnet.ibm.com&gt;<br>Sent by: kimchi-devel-bounces@ovirt.org<br>To: Chandra Shehkhar Reddy Potula &lt;chandra@linux.vnet.ibm.com&gt;, kimchi-devel@ovirt.org<br>Cc:<br>Subject: Re: [Kimchi-devel] [Proposal] Introducing the version in REST API URI for kimchi/ginger plugins<br>Date: Fri, Aug 7, 2015 12:03 AM<br>&nbsp;<br><!--Notes ACF
<meta content="text/html; charset=utf8"
      http-equiv="Content-Type" >--><br>&nbsp;
<div>On 06/08/2015 07:41, Chandra Shehkhar Reddy Potula wrote:</div>
<blockquote cite="mid:55C339D4.2070502@linux.vnet.ibm.com" type="cite" ><!--Notes ACF
<meta content="text/html; charset=utf8"
        http-equiv="Content-Type" >-->Hi Aline,<br><br>No need to mention explicitly, but this is very useful in case where end users are exploiting functionality via REST API directly and not UI way.</blockquote><br>I suppose end users know which version he/she is using, right? =)<br>&nbsp;
<blockquote cite="mid:55C339D4.2070502@linux.vnet.ibm.com" type="cite" ><br>Regards<br>Chandra<br>&nbsp;
<div>On 08/06/2015 01:52 PM, Chandra Shehkhar Reddy Potula wrote:</div>
<blockquote cite="mid:55C3194D.3040208@linux.vnet.ibm.com" type="cite" ><!--Notes ACF
<meta content="text/html; charset=utf8"
          http-equiv="Content-Type" >-->Hi Aline,<br><br>Versioning helps you iterate faster and prevents invalid requests from hitting updated endpoints. It also helps smooth transitions over any major API version as you can continue to offer old API versions for a period of time. Definitely supporting the old version of API period of time while offering new functionality with newer version always give benefits and extra time for end user to adjust to new one.<br><br>I see lot of products in the market are adapting versioning (see below link)<br><a href="http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/" moz-do-not-send="true" target="_blank" >http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/</a><br><br>I do understand the concern of maintaining the version of the API endpoints , below are some of the links from Openstack, which talks about it.<br><a href="http://developer.openstack.org/api-ref.html" moz-do-not-send="true" target="_blank" >http://developer.openstack.org/api-ref.html</a><br><a href="https://wiki.openstack.org/wiki/VersionDiscovery" moz-do-not-send="true" target="_blank" >https://wiki.openstack.org/wiki/VersionDiscovery</a><br><br>Hope it make senses to you.<br><br>Regards<br>Chandra<br>&nbsp;
<div>On 08/06/2015 12:04 AM, Aline Manera wrote:</div>
<blockquote cite="mid:55C25745.1000903@linux.vnet.ibm.com" type="cite" ><!--Notes ACF
<meta content="text/html; charset=utf8"
            http-equiv="Content-Type" >--><br>Hi Chandra,<br><br>I don't see any benefit in adding the version in the URL. Instead of that, it scares me on how we will maintain it.<br><br>Once we move to wok and Kimchi as plugin, all the APIs will be automatically updated so everything will be in the same page.<br><br>Regards,<br>Aline Manera<br>&nbsp;
<div>On 17/07/2015 09:47, Chandra Sr Potula wrote:</div>
<blockquote cite="mid:OF5F31939B.F65133B3-ON65257E85.0044037D-65257E85.0046405F@in.ibm.com" type="cite" ><p><font face="DejaVu Serif" size="2" >Hi Kimchi/Ginger Devel-Team,</font><br><br><font face="DejaVu Serif" size="2" >Thank you for creating WOK branch to separate the kimchi plugin from the base frame work. It is a great idea.</font><br><br><font face="DejaVu Serif" size="2" >Along with the separation of kimchi plugin looks like there is a transformation of REST API URIs as well. So thinking in those lines will it be good idea even to introduce version to the REST API URIs ?</font><br><br><font face="DejaVu Serif" size="2" >Let me take one REST API URI to convey clear on what I am talking about.</font><br><br><font face="DejaVu Serif" size="2" >To retrieve the host repository information, current URI is: &nbsp;"/plugins/kimchi/host/repositories".</font><br><br><font face="DejaVu Serif" size="2" ><b>Recommendation</b></font><font face="DejaVu Serif" size="2" >:</font><br><font face="DejaVu Serif" size="2" >New host repository URI can look like : </font><font face="DejaVu                Serif" size="2" ><b>"</b></font><font face="DejaVu Serif" size="2" ><b>/plugins/kimchi/v&lt;version&gt;/host/repositories" , </b></font><font face="DejaVu Serif" size="2" >so that it is easy to maintain REST API future enhancements at the same time do not brake some body who is using the existing URI.</font><br><br><font face="DejaVu Serif" size="2" >Note* Adding version in the &nbsp;URI above is just an example and we could place the version in the URI best possible way.</font></p>
<p><font face="DejaVu Serif" size="2" >Thanks and Regards,</font><br><font color="#888888" face="Georgia" size="3" ><b>Chandra Shekhar Reddy Potula</b></font><br><font color="#00CCFF" face="Georgia" size="1" >Staff System Software Engineer<br>IBM Systems &amp; Technology Group, Systems Software Development<br>System z Firmware Development</font><font face="serif" size="3" >&nbsp;</font></p>
<table border="0" cellpadding="0" cellspacing="0" >        <tbody>                <tr valign="top" >                        <td colspan="2" valign="middle" width="650" >                        <hr align="left" size="2" width="100%" ></td>                </tr>                <tr valign="top" >                        <td width="401" ><font color="#466BB0" face="Georgia" size="1" ><b>Phone:</b></font><font color="#5F5F5F" face="Georgia" size="1" >&nbsp;91-080-4066-0786</font><font color="#466BB0" face="Georgia" size="1" >&nbsp;| </font><font color="#466BB0" face="Georgia" size="1" ><b>Mobile:</b></font><font color="#5F5F5F" face="Georgia" size="1" >&nbsp;91-973-1122-221</font><br>                        <font color="#466BB0" face="Georgia" size="1" ><b>E-mail:</b></font><font color="#5F5F5F" face="Georgia" size="1" >&nbsp;</font><a href="mailto:chandra.shekhar@in.ibm.com" moz-do-not-send="true" target="_blank" ><font color="#5F5F5F" face="Georgia" size="1" ><u>chandra.shekhar@in.ibm.com</u></font></a></td>                        <td width="249" >                        <div align="right" ><img alt="IBM" height="30" src="cid:part5.09090203.02090509@linux.vnet.ibm.com" width="83" ><br>                        <br>                        <font color="#5F5F5F" face="Georgia" size="1" >ORR, Manyatha MD3 1F B247<br>                        Bengaluru, Karnataka 560045<br>                        India</font></div>                        </td>                </tr>        </tbody></table><font face="serif" size="3" >&nbsp;</font>
<p>&nbsp;</p>
<fieldset>&nbsp;</fieldset>&nbsp;

<div><font face="Default Monospace,Courier New,Courier,monospace" size="2" >_______________________________________________<br>Kimchi-devel mailing list<br><a href="mailto:Kimchi-devel@ovirt.org" moz-do-not-send="true" target="_blank" >Kimchi-devel@ovirt.org</a><br><a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" moz-do-not-send="true" target="_blank" >http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a></font></div></blockquote>&nbsp;

<fieldset>&nbsp;</fieldset>&nbsp;

<div><font face="Default Monospace,Courier New,Courier,monospace" size="2" >_______________________________________________<br>Kimchi-devel mailing list<br><a href="mailto:Kimchi-devel@ovirt.org" moz-do-not-send="true" target="_blank" >Kimchi-devel@ovirt.org</a><br><a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" moz-do-not-send="true" target="_blank" >http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a></font></div></blockquote>&nbsp;

<fieldset>&nbsp;</fieldset>&nbsp;

<div><font face="Default Monospace,Courier New,Courier,monospace" size="2" >_______________________________________________<br>Kimchi-devel mailing list<br><a href="mailto:Kimchi-devel@ovirt.org" moz-do-not-send="true" target="_blank" >Kimchi-devel@ovirt.org</a><br><a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" moz-do-not-send="true" target="_blank" >http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a></font></div></blockquote></blockquote>&nbsp;

<div><font face="Default Monospace,Courier New,Courier,monospace" size="2" >_______________________________________________<br>Kimchi-devel mailing list<br>Kimchi-devel@ovirt.org<br><a href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel" target="_blank" >http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a></font></div></blockquote>
<div dir="ltr" >&nbsp;</div></div>
<BR>