Hi Nirmal,

Thanks for the suggestion. We are looking in to the most suitable approach
to version the API. As you have mentioned, it would be a better approach if
we can direct the requests to the latest API version. I will look into it.

On Sat, Aug 15, 2015 at 11:16 AM, Nirmal Fernando <[email protected]> wrote:

> Any particular reason for having a war file per version? Much better
> approach would be to version the API classes. That way you could get all
> traffic without an explicit version on to the latest available REST API.
> You need to embed version info into API classes.
>
> https://developer.github.com/v3/ Github api is a good reference to check.
>
> On Sat, Aug 15, 2015 at 10:17 AM, Sanjeewa Malalgoda <[email protected]>
> wrote:
>
>> +1 for option 02.
>> On Aug 15, 2015 10:01 AM, "Thilini Cooray" <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> We need to version a  webapp which contains RESTful APIs.
>>> This webapp will be deployed in WSO2 Api Manager.
>>>
>>> Following are 3 approaches I found for the purpose :
>>>
>>>    1. Make war name as <warName>${project.artifactId}-${pom.version}</
>>>    warName> which will output webappName-version.war
>>>
>>>            Its endpoint address is http://HostName:port
>>> /webappName-version/
>>>            Ex : https://localhost:9443/api-import-export-1.0.0/
>>>
>>>        2.  Make war name as <warName>
>>> ${project.artifactId}#${pom.version}</warName> which will output
>>> webappName#version.war
>>>
>>>             This will allow Tomcat server to identify versions of the
>>> web app.
>>>             Its endpoint address is http://HostName:port/
>>> webappName/version/
>>>             Ex : https://localhost:9443/api-import-export/1.0.0/
>>> <https://localhost:9443/api-import-export-1.0.0/>
>>>
>>>             WSO2 Application Server follows this approach [1].
>>>
>>>        3.  Apache tomcat consists of another approach using "##" for
>>> context naming [2].
>>>             That approach needs to make war name as <warName>
>>> ${project.artifactId}##${pom.version}</warName> which will output
>>> webappName##version.war
>>>
>>>            Its endpoint address is http://HostName:port/webappName/
>>>            This will use the latest version.
>>>            Ex : https://localhost:9443/api-import-export/
>>> <https://localhost:9443/api-import-export-1.0.0/>
>>>            However this naming convention cannot be deployed in WSO2 Api
>>> Manager. It returns AbstractWebappDeployer Unsupported file path format.
>>>
>>> What is the best approach to follow when versioning the webapp ?
>>>
>>> [1] https://docs.wso2.com/display/AS521/Webapp+Versioning
>>> [2] http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming
>>>
>>> Thanks,
>>> ThiliniC.
>>>
>>> --
>>> Best Regards,
>>>
>>> *Thilini Cooray*
>>> Software Engineer
>>> Mobile : +94 (0) 774 570 112 <%2B94%20%280%29%20773%20451194>
>>> E-mail : [email protected]
>>>
>>> WSO2 Inc. www.wso2.com
>>> lean.enterprise.middleware
>>>
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
>
> Thanks & regards,
> Nirmal
>
> Team Lead - WSO2 Machine Learner
> Associate Technical Lead - Data Technologies Team, WSO2 Inc.
> Mobile: +94715779733
> Blog: http://nirmalfdo.blogspot.com/
>
>
>


-- 
Best Regards,

*Thilini Cooray*
Software Engineer
Mobile : +94 (0) 774 570 112 <%2B94%20%280%29%20773%20451194>
E-mail : [email protected]

WSO2 Inc. www.wso2.com
lean.enterprise.middleware
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to