[katello-devel] API v2 - proposed changes in routes
Bryan Kearney
bkearney at redhat.com
Tue Mar 5 17:26:31 UTC 2013
On 03/05/2013 09:52 AM, Eric D Helms wrote:
>
>
>
> On Tue, Mar 5, 2013 at 9:11 AM, Tomas Strachota <tstrachota at redhat.com
> <mailto:tstrachota at redhat.com>> wrote:
>
> On 03/05/2013 02:29 PM, Eric D Helms wrote:
>
> On #2, if one of our core operating principles is that nearly
> everything
> is scoped based on an organization, why would we want to
> abstract that
> away and not make it explicit as part of resource look-up?
> Given that a
> design goal of RESTful APIs is to be predictable, I would think
> the form
> that includes organization at the trunk of the route is more
> predictable
> and mimics how resources are structured.
>
>
> The idea was not to get rid of the resource relations. The scope
> would still be there for collections. For example environments would
> look like:
>
> crate: POST /organization/ACME/
> list: GET /organization/ACME/__environments/
> show: POST /environments/1/
> update: PUT /environments/1/
> destroy: DELETE /environments/1/
>
> I think of it like this:
> I want to see what environments I have in org ACME -> I go to
> /organization/ACME/__environments/. Now I know ids of all the
> environments I'm interested in. If I want to change it, I know it's
> environment so I go to /environments/1/. I don't have to keep in
> mind what org it's in.
> When whole api behaves the same I find it predictable.
>
> Given that the API is another user interface, I feel that it's important
> for all our interfaces to mimic one another in structure as well as keep
> certain details in the forefront of users minds. In the UI, most
> entities are scoped based on Organization and this is expressed
> throughout the design goals. This should, in my opinion, spill over
> into the API so that resources are predictable and mimic other workflows
> the user will be accustomed to. Using our API, I should have to
> actively deal with the fact that System A is a part of Org X to help me
> understand the implications and because this is a built in hierarchy
> that we've expressed as a guiding principle of our design.
>
> I can understand your argument for predictability, but if I start
> querying the collection via
> /organization/ACME_Corporation/environments/, based on the principles of
> REST, I would expect that I can just add an ID to the end of that URL
> and acquire the specific resource.
I think the API should have all actions available to it, but I dont know
if it should mimic the UI. If user create is in /admin today i dont
think the api should be:
/admin/users
it should just be
/users
-- bk
More information about the katello-devel
mailing list