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/ >
