I've enabled only comments since I am publishing it to dev list: https://docs.google.com/spreadsheets/d/1VP9-0xY2Oj1H1sv5yf5goIT6TakpwrCt5Z8QW1oFVOc/edit?usp=sharing
On Mon, Oct 6, 2014 at 7:33 AM, Nirmal Fernando <nirmal070...@gmail.com> wrote: > Sure, I hope, I'll be able to track who suggested what? > > On Mon, Oct 6, 2014 at 7:31 AM, Shiroshica Kulatilake <sh...@wso2.com> > wrote: > >> Hi Nirmal, >> >> Can you share this in the form of a sheet ? >> Then we can have a suggested column to have the diffs >> >> Thank you, >> Shiro >> >> On Mon, Oct 6, 2014 at 7:23 AM, Nirmal Fernando <nirmal070...@gmail.com> >> wrote: >> >>> Thanks Akila for going through and identifying collisions. >>> >>> On Sun, Oct 5, 2014 at 11:26 PM, Akila Ravihansa Perera < >>> raviha...@wso2.com> wrote: >>> >>>> Hi Nirmal, >>>> >>>> Great work on re-factoring REST API! >>>> >>>> I think these request paths might cause collisions. >>>> >>>> 1. /cartridges/multiTenant, /cartridges/singleTenant, >>>> /cartridges/{cartridgeType} >>>> >>> >>> I don't think in a real world, we would have a {cartridgeType} called >>> 'singleTenant' or 'multiTenant'. Do you think? >>> >>> >>>> >>>> >>>> 2. /clusters/{cartridgeType}, /clusters/{subscriptionAlias}, >>>> /clusters/{clusterId} >>>> >>> >>> This is true, thanks again! So, we could refactor to something like: >>> >>> /clusters/cartridgeType/{cartridgeType} >>> /clusters/alias/{subscriptionAlias} >>> /clusters/{clusterId} >>> >>> Any other better way? >>> >>> >>>> >>>> I might be wrong...but just wanted to clarify :) >>>> >>>> Thanks. >>>> >>>> On Sun, Oct 5, 2014 at 9:06 PM, Udara Liyanage <ud...@wso2.com> wrote: >>>> >>>>> +1 for refactoring, some paths does not adhere to REST best practices >>>>> >>>>> On Sun, Oct 5, 2014 at 8:54 PM, Nirmal Fernando < >>>>> nirmal070...@gmail.com> wrote: >>>>> >>>>>> Hi Guys, >>>>>> >>>>>> As discussed previously, I've been going through all the API >>>>>> operations exposed via Stratos REST API and identified following set of >>>>>> APIs need to be refactored to have a RESTful design. While doing this, >>>>>> I've >>>>>> also identified sub-APIs that we have provided (under Entity column) and >>>>>> I >>>>>> suggest we could introduce sub-API classes as it makes the StratosAdmin >>>>>> class more readable. >>>>>> >>>>>> There're 40+ API operations ([?]), hence there could be places that >>>>>> I've not suggested proper refactoring. Please go through the list and >>>>>> provide improvements/comments, we can discuss/argue, then conclude and >>>>>> build a clean API for Stratos. >>>>>> >>>>>> IMO we also need to place a review process when adding a new API, it >>>>>> could save lot of time spending on cleaning things up. I propose, API >>>>>> introducer should initiate a discuss thread and a vote before committing >>>>>> them to the repository. >>>>>> >>>>>> I'll keep this thread open for 48hrs for comments and/or improvements. >>>>>> >>>>>> EntityHTTP OperationAPI Operation Name -> Suggested NameRequest >>>>>> PathProposed >>>>>> PathCartridgePOSTdeployCartridgeDefinition/cartridge/definition/ >>>>>> /cartridgesDELETEunDeployCartridgeDefinition >>>>>> /cartridge/definition/{cartridgeType}/cartridges/{cartridgeType}GETgetValidDeploymentPolicies >>>>>> -> getValidDeploymentPoliciesOfCartridge >>>>>> {cartridgeType}/policy/deployment >>>>>> /cartridges/{cartridgeType}/deploymentPolicyGETgetAvailableMultiTenantCartridges >>>>>> -> getMultiTenantCartridges/cartridge/tenanted/list >>>>>> /cartridges/multiTenantGETgetAvailableSingleTenantCartridges -> >>>>>> getSingleTenantCartridges/cartridge/list/cartridges/singleTenantGETgetAvailableCartridges >>>>>> -> >>>>>> getCartridges/cartridge/available/list/cartridgesGETgetAvailableSingleTenantCartridgeInfo >>>>>> -> getAvailableSingleTenantCartridge >>>>>> /cartridge/available/info/{cartridgeType} >>>>>> /cartridges/{cartridgeType}/singleTenantGETgetAvailableLbCartridges >>>>>> /cartridge/lb/cartridges/loadBalancerPartitionPOSTdeployPartition >>>>>> /policy/deployment/partition/partitionsGETgetPartitions/partition >>>>>> /partitionsGETgetPartition/partition/{partitionId} >>>>>> /partitions/{partitionId}Autoscaling PolicyPOST >>>>>> deployAutoscalingPolicyDefintion/policy/autoscale/autoscalePolicies >>>>>> GETgetAutoscalePolicies -> getAutoscalingPolicies/policy/autoscale >>>>>> /autoscalePoliciesGETgetAutoscalePolicies -> getAutoscalingPolicy >>>>>> /policy/autoscale/{autoscalePolicyId} >>>>>> /autoscalePolicies/{autoscalePolicyId}Deployment PolicyPOST >>>>>> deployDeploymentPolicyDefinition/policy/deployment/deploymentPolicies >>>>>> GETgetDeploymentPolicies/policy/deployment/deploymentPoliciesGETgetDeploymentPolicies >>>>>> -> getDeploymentPolicy/policy/deployment/{deploymentPolicyId} >>>>>> /deploymentPolicies/{deploymentPolicyId}Partition GroupGET >>>>>> getPartitionGroups/partition/group/{deploymentPolicyId} >>>>>> /deploymentPolicies/{deploymentPolicyId}/partitionGroupGETgetPartitions >>>>>> -> getPartitionGroup >>>>>> /partition/{deploymentPolicyId}/{partitionGroupId} >>>>>> /deploymentPolicies/{deploymentPolicyId}/partitionGroup/{partitionGroupId} >>>>>> GETgetPartitionsOfPolicy/partition/{deploymentPolicyId} >>>>>> /deploymentPolicies/{deploymentPolicyId}/partitionSubscriptionsGET >>>>>> getSubscribedCartridges/cartridge/list/subscribed >>>>>> /subscriptions/cartridgesGETgetSubscribedCartridgesForServiceGroup >>>>>> -> getSubscribedCartridgesOfServiceGroup >>>>>> /cartridge/list/subscribed/group/{serviceGroup} >>>>>> /subscriptions/cartridges/groups/{serviceGroup}GETgetCartridgeInfo >>>>>> -> getSubscribedCartridgeInfo/cartridge/info/{subscriptionAlias} >>>>>> /subscriptions/{subscriptionAlias}/cartridgesGETgetActiveInstances >>>>>> -> getActiveMembersCountOfSubscription >>>>>> /cartridge/active/{cartridgeType}/{subscriptionAlias} >>>>>> /subscriptions/{subscriptionAlias}/cartridges/{cartridgeType}/active >>>>>> POSTsubscribe/cartridge/subscribe/subscriptionsDELETEunsubscribe >>>>>> /cartridge/unsubscribe/subscriptions/{subscriptionAlias}POST >>>>>> addSubscriptionDomains >>>>>> /cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains >>>>>> /subscriptions/{subscriptionAlias}/domainsGETgetSubscriptionDomains >>>>>> /cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains >>>>>> /subscriptions/{subscriptionAlias}/domainsGETgetSubscriptionDomain >>>>>> /cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName} >>>>>> /subscriptions/{subscriptionAlias}/domains/{domainName}DELETE >>>>>> removeSubscriptionDomain >>>>>> /cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domains/{domainName} >>>>>> /subscriptions/{subscriptionAlias}/domains/{domainName}ClustersGETgetClustersForTenant >>>>>> -> getClustersOfTenant/cluster//clustersGETgetClusters -> >>>>>> getClustersOfCartridge/cluster/{cartridgeType}/ >>>>>> /clusters/{cartridgeType}GETgetServiceClusters (This seems to do the >>>>>> same job as getClusters - I suggest we deprecate this.)GETgetCluster >>>>>> -> getClusterOfSubscription >>>>>> /cluster/{cartridgeType}/{subscriptionAlias} >>>>>> /clusters/{subscriptionAlias}GETgetCluster >>>>>> /cluster/clusterId/{clusterId}/clusters/{clusterId}GET >>>>>> getLoadBalancerCluster >>>>>> /cartridge/{cartridgeType}/subscription/{subscriptionAlias}/load-balancer-cluster >>>>>> /clusters/{subscriptionAlias}/loadBalancerTenantsGETretrieveTenants >>>>>> /tenant/list/tenants/list(All paths will be refactored to start from >>>>>> /tenants )Services POSTdeployService/service/definition/services >>>>>> DELETEunDeployService/service/definition/{serviceType} >>>>>> /services/{serviceType}(All paths will be refactored to start from >>>>>> /services )GIT RepositoriesPOSTgetRepoNotification -> >>>>>> notifyRepository/reponotification/repo/notifyPOSTsynchronizeRepository >>>>>> -> synchronizeRepositoryOfSubscription/cartridge/sync >>>>>> /repo/synchronize/{subscriptionAlias}UsersGETretrieveUsers/user/list >>>>>> /usersKubernetes HostsPOSTdeployKubernetesGroup -> >>>>>> deployKubernetesHostCluster/kubernetes/deploy/group/kubernetesCluster >>>>>> PUTdeployKubernetesHost/kubernetes/deploy/host/{kubernetesGroupId} >>>>>> /kubernetesCluster/{kubernetesClusterId}/minionPUT >>>>>> updateKubernetesMaster/kubernetes/update/master >>>>>> /kubernetesCluster/{kubernetesClusterId}/masterPATCH >>>>>> updateKubernetesHost/kubernetes/update/host >>>>>> /kubernetesCluster/{kubernetesClusterId}/minion/{minionId}GETgetKubernetesGroups >>>>>> -> >>>>>> getKubernetesHostClusters/kubernetes/group/kubernetesClusterGETgetKubernetesGroup >>>>>> -> getKubernetesHostCluster/kubernetes/group/{kubernetesGroupId} >>>>>> /kubernetesCluster/{kubernetesClusterId}GETgetKubernetesHosts -> >>>>>> getKubernetesHostsOfKubernetesCluster >>>>>> /kubernetes/hosts/{kubernetesGroupId} >>>>>> /kubernetesCluster/{kubernetesClusterId}/hostsGETgetKubernetesMaster >>>>>> -> getKubernetesMasterOfKubernetesCluster >>>>>> /kubernetes/master/{kubernetesGroupId} >>>>>> /kubernetesCluster/{kubernetesClusterId}/masterDELETEunDeployKubernetesGroup >>>>>> -> unDeployKubernetesHostCluster/kubernetes/group/{kubernetesGroupId} >>>>>> /kubernetesCluster/{kubernetesClusterId}DELETEunDeployKubernetesHost >>>>>> -> unDeployKubernetesHostOfKubernetesCluster >>>>>> /kubernetes/host/{kubernetesHostId} >>>>>> /kubernetesCluster/{kubernetesClusterId}/hosts/{hostId} >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards, >>>>>> Nirmal >>>>>> >>>>>> Nirmal Fernando. >>>>>> PPMC Member & Committer of Apache Stratos, >>>>>> Senior Software Engineer, WSO2 Inc. >>>>>> >>>>>> Blog: http://nirmalfdo.blogspot.com/ >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Udara Liyanage >>>>> Software Engineer >>>>> WSO2, Inc.: http://wso2.com >>>>> lean. enterprise. middleware >>>>> >>>>> web: http://udaraliyanage.wordpress.com >>>>> phone: +94 71 443 6897 >>>>> >>>> >>>> >>>> >>>> -- >>>> Akila Ravihansa Perera >>>> Software Engineer, WSO2 >>>> >>>> Blog: http://ravihansa3000.blogspot.com >>>> >>> >>> >>> >>> -- >>> Best Regards, >>> Nirmal >>> >>> Nirmal Fernando. >>> PPMC Member & Committer of Apache Stratos, >>> Senior Software Engineer, WSO2 Inc. >>> >>> Blog: http://nirmalfdo.blogspot.com/ >>> >> >> >> >> -- >> Shiroshica Kulatilake >> >> Architect, >> WSO2, Inc. http://wso2.com/ >> Phone: +94 776523867 >> > > > > -- > Best Regards, > Nirmal > > Nirmal Fernando. > PPMC Member & Committer of Apache Stratos, > Senior Software Engineer, WSO2 Inc. > > Blog: http://nirmalfdo.blogspot.com/ > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/