Hi all,

I recently started looking into properly implementing breadcrumbs to make 
navigation clearer, especially around nested resources (Subnets Detail page, 
for example). The idea is to use the request.path to form a logical breadcrumb 
that isn’t dependent on browser history ( 
https://review.openstack.org/#/c/129985/3/horizon/browsers/breadcrumb.py ). 
Unfortunately, this breaks down quite quickly because we use odd patterns like 
`<resources>/<resource_id>/detail`, and `<resources>/<resource_id>` doesn’t 
exist.

This made me realise how much of an inconsistent mess the URL patterns are.  
I’ve started cleaning them up, so we move from these patterns:

`/admin/networks/<network_id>/detail` - Detail page for a Network
`/admin/networks/<network_id>/addsubnet` - Create page for a Subnet

To patterns in line with usual CRUD usages, such as:

`/admin/networks/<network_id>` - Detail page for a Network
`/admin/networks/<network_id>/subnets/create` - Create page for a Subnet

This is mostly trivial, just removing extraneous words and adding consistency, 
with end goal being every panel following patterns like:

`/<resources>` - Index page
`/<resources>/<resource_id>` - Detail page for a single resource
`/<resources>/create` - Create new resource
`/<resources>/<resource_id>/update` - Update a resource

This gets a little complex around nested items. Should a Port for example, 
which has a unique ID, be reachable in Horizon by just its ID? Ports must 
always be attached to a network as I understand it. There are multiple ways to 
express this:

`/networks/ports/<port_id>` - Current implementation
`/networks/<network_id>/ports/<port_id>` - My preferred structure
`/ports/<port_id>` - Another option

Does anyone have any opinions on how to handle this structuring, or if it’s 
even necessary?

Regards,
Rob
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to