stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pradeep Fernando <pradee...@gmail.com>
Subject Re: Designing the REST API
Date Thu, 07 Nov 2013 05:11:53 GMT
Hi Devs,

Here is the Cartridge admin API i came up with,

list single tenant cartridges -  admin/cartridge/list/tenanted
list multitenant cartridges -  admin/cartridge/list
list subscribed cartridges -  admin/cartridge/list/subscribed
subscribe to a cartridge -  admin/cartridge/subscribe
unsubscribe from a cartridge -  admin/cartridge/unsubscribe


patch is attached to JIRA -
https://issues.apache.org/jira/browse/STRATOS-153


On Wed, Nov 6, 2013 at 8:00 AM, Pradeep Fernando <pradeepfn@gmail.com>wrote:

> Hi Nirmal,
>
> Please find the comments inline..
>
>
> On Wed, Nov 6, 2013 at 7:37 AM, Nirmal Fernando <nirmal070125@gmail.com>wrote:
>
>> Hi Pradeep,
>>
>> Thanks for bringing this up.
>>
>> On Nov 4, 2013 10:02 PM, "Pradeep Fernando" <pradeepfn@gmail.com> wrote:
>> >
>> > Hi devs,
>> >
>> > I recently worked on porting tenant mgt operations to REST API. Below
>> is the API i came up with.
>> >
>> > Main operations,
>> >
>> > - addTenant
>> > - deleteTenant
>> We need to carefully support this operation since upon this event, we
>> need to remove all existing subscriptions etc.
>>
>> > - updateTenant
>> We should not allow changing tenant domain IMO, but a set of selected
>> attributes.
>>
>> > - getTenant
>> > - search tenants by a String
>> > - activateTenant
>> > - deactivateTenant
>> >  - getCompleteTenantList
>> Is there any reason why this is not 'getAllTenants'?
>
>
> All the above methods are wrapper methods. I did not came up with method
> names/new implementation flows. The operation names for taken from existing
> web service wrapper. Yes delete tenant is bit tricky. I noticed that, we
> are not using that operation in WS api, even if its there. Furthermore i
> encountered an error coming from carbon registry while executing the
> operation. However i ported the code for the completeness, sake.
>
> should i rename some of the method names still ?
>
>
>>
>> >
>> >
>> >
>> > API i came up with,
>> >
>> > Considered tenant as a resource,
>> > the below string is formatted as , operation, HTTPMethod, REST
>> endpoint, payload
>> >
>> > - addTenant  , POST, /admin/tenant, tenantInfoBean as a JSON payload
>> > - deleteTenant, DELETE, /admin/tenant/{tenantDomain}
>> > - updateTenant, PUT, /admin/tenant, tenantInfoBean as a JSON payload
>> Don't we need tenant domain at the end? That would make it easy to
>> authorize?
>>
>> > - getTenant, GET, /admin/tenant/{tenantDomain}
>> >
>>
>> I'm bit confused on the admin context you have used here. For an example
>> to add a tenant you have to be in super tenant mode and to update a tenant
>> IMO you need to be in tenant admin mode.
>>
>> But I'm not sure whether that should exhibit in the url.
>>
> well, /admin context is the qualifying pre-context i used. Its solely for
> namespace purposes. (rationale was like, these are the endpoint for Stratos
> admin operations).
>
> i just wanted to prevent the URL endpoint being formatted as,
>
> <webappContext>/tenant
>
> etc.
> should we choose a different context/drop the context altogether ?
>
>
> Appreciate the feedback. thanks.
>
> --Pradeep
>
>
>> > The other operations are kind of utility operations. I could not
>> co-relate them to any resource.
>> >
>> > - search tenants by a String, GET, /admin/tenant/search/{searchString}
>> > - activateTenant , POST, /admin/tenant/activate/{tenantDomain}
>> > - deactivateTenant, POST, /admin/tenant/deactivate/{tenantDomain}
>> >  - getCompleteTenantList, GET, /admin/tenant/list
>> >
>> >
>> > I used POST method in tenant activate/deactivate operations, because it
>> modifies the tenant aspect...
>> > IMHO we do not need versioning info in our REST API endpoints. There
>> will be one stratos controller for a given setup and I do not see a use
>> case for maintaining two different version of the same admin API..
>> >
>> +1
>>
>> >
>> > I have attached the patch for above implementation, to the JIRA [1]
>> >
>> > The above API is open for discussion and i can change the current impl
>> if required..
>> >
>> > [1] https://issues.apache.org/jira/browse/STRATOS-152
>> >
>> >
>> >
>> > On Fri, Oct 4, 2013 at 11:07 PM, Pradeep Fernando <pradeepfn@gmail.com>
>> wrote:
>> >>
>> >> Hi All,
>> >>
>> >> This thread is to discuss about the admin services required by Stratos
>> Controller and its API definitions.
>> >>
>> >> your thoughts/suggestions are highly appreciated.
>> >>
>> >> thanks,
>> >> --Pradeep
>> >
>> >
>> >
>> >
>> > --
>> > Pradeep Fernando.
>> > http://pradeepfernando.blogspot.com/
>>
>>
>
>
> --
> Pradeep Fernando.
> http://pradeepfernando.blogspot.com/
>



-- 
Pradeep Fernando.
http://pradeepfernando.blogspot.com/

Mime
View raw message