Hi Rion,

We will appreciate your advises on API Naming conventions based on your 
experiences with Foundation API - https://foundation.iplantcollaborative.org/

Thanks,
Suresh

On Aug 8, 2013, at 12:12 PM, Saminda Wijeratne <[email protected]> wrote:

> +1 for the suggestion by Viknes.
> 
> Also +1 on Shameera's suggestion as well. 
> Shameera, you obviously have thought of this very hard. Do you think we need 
> to plan & implement the versioning url you mentioned along with the 
> non-versioned url or can we do the non-versioned url first and then implement 
> the versioned url with less changes to map the non-versioned url to the 
> latest version url?
> 
> Saminda
> 
> 
> On Thu, Aug 8, 2013 at 4:35 AM, Shameera Rathnayaka <[email protected]> 
> wrote:
> Hi Saminda etal, 
> 
> Sometimes back i have done simple background research regarding best way to 
> add versioning support to REST API. Base on that  Here i am like to suggest 
> improved version of your second URL set, that we can add versioning support 
> for this REST API, Hope this would help.
> 
> Versioning support
> 
> Putting the version in the URI makes the API easier to use, test, and verify 
> that the appropriate resource representation version is being requested. The 
> current recommendation is to support versioning via version numbers directly 
> in resource URIs. It makes the version visible and a versioned API is easier 
> to understand and use correctly.
> 
> Version numbers in URIs should be high in the node hierarchy, preferably as 
> the first node, for example:
> 
> 
> http[s]://<hostname>:<port>/<version.of.api>/<resource-path> or 
> http[s]://<hostname>:<port>/api/<version.of.api>/<resource-path>
> 
> 
> Lets say we have released two Airavata registry REST API versions(v1 and v2). 
> For the latest API version(here it's v2) we will have two URIs for each 
> resource as shown in below
> 
> http://airavataserver:8090/api/airavata-services/registry/ and
> 
> http://airavataserver:8090/api/v2/airavata-services/registry/
> 
> For old versions(here v1) we will have only one URI for each resource 
> 
> eg: http://airavataserver:8090/api/v1/airavata-services/registry/
> 
> With this approach if users need to always use the latest REST API with their 
> products then they can use version abasent URI's which always map to the 
> latest released version of REST API
> 
> eg: http://airavataserver:8090/api/airavata-services/registry/  - always map 
> to latest released API version
> 
> If user need to use specific version of REST API then it can be done by using 
> URIs which have version number attached to it. 
> 
> eg: http://airavataserver:8090/api/v2/airavata-services/registry/ - always 
> map to version 2.
> 
> Thanks,
> Shameera.
> 
> 
> 
> 
> On Thu, Aug 8, 2013 at 6:47 AM, Viknes Balasubramanee <[email protected]> wrote:
> How about something like
> 
> http://<...deployed_host_path...>/airavata/services/registry/ (Dropping the 
> –api makes sense as whatever is accessible should be an api)
> 
> http://<...deployed_host_path...>/airavata/services/experiment/
> 
> If we have a sample webapp deployed or if we decide to add anything else 
> later on, it can go like
> 
> http://<...deployed_host_path...>/airavata/{{webappname}}/
> 
>  
> 
> Viknes
> 
>  
> 
> From: Saminda Wijeratne [mailto:[email protected]] 
> Sent: Wednesday, August 07, 2013 11:07 PM
> To: [email protected]; [email protected]
> Subject: Re: Changing the registry rest service context & url
> 
>  
> 
> Perhaps the following could be a better URL pattern,
> 
> http://<...host_path...>/airavata-services/user-store/....
> http://<...host_path...>/airavata-services/registry/....
> 
> http://<...host_path...>/airavata-services/experiment/....
> 
> eg:
> 
> http://<...host_path...>/airavata-services/experiment/execution/workflow?templateId=xxx....
> http://<...host_path...>/airavata-services/experiment/execution/cancel?experimentId=xxx
> http://<...host_path...>/airavata-services/experiment/execution/suspend?experimentId=xxx
> http://<...host_path...>/airavata-services/experiment/execution/resume?experimentId=xxx
> 
> 
>  
> 
> On Wed, Aug 7, 2013 at 12:42 PM, Suresh Marru <[email protected]> wrote:
> 
> This makes good sense and probably about time to do it as well.
> 
> + 1 for the change.
> 
> Suresh
> 
> On Aug 7, 2013, at 11:59 AM, Saminda Wijeratne <[email protected]> wrote:
> 
> > Hi devs,
> >
> > With the introduction of the rest service for experiment execution I think 
> > we need to have a proper service hosting url mechanism. Current registry 
> > rest service is hosted as,
> > http://<...deployed_host_path...>/airavata-registry/api/....  which I 
> > changed to,
> > http://<...deployed_host_path...>/airavata-services/registry-api/....
> >
> >
> > Following is how we can have the new experiment service url
> > http://<...deployed_host_path...>/airavata-services/experiment-service/....
> >
> > This is not finalized. Your thoughts are welcome.
> >
> > Regards,
> > Saminda
> 
>  
> 
> 
> 
> 
> -- 
> Best Regards,
> Shameera Rathnayaka.
> 
> email: shameera AT apache.org , shameerainfo AT gmail.com
> Blog : http://shameerarathnayaka.blogspot.com/
> 

Reply via email to