Consistent naming and object model between UI and API
bdaw May 14, 2012 3:55 AMI would like to discuss using consistent naming for portal entities. This is a concern visible between UI and API.
Internally we have several entities like:
- Site - generic object being collection of pages and navigations (very high level definition)
- Site of type portal - Like "classic" and "sample" that come out of the box.
- Site of type group - Each group can have one related site
- Dashboard - which is also site related to specific user in the end.
Within UI (GateIn 3.2) this naming is not used consistently. Just two simple examples:
- There is 'Site' menu which lists "Classic". However under sites management you can "Add New Portal"
- To create new Group Site (or Site of type group) you need to use "Add Navigation" button.
Because internal model is even more complex this makes it pretty hard to understand actual object model.
There is another major issue with the usage of word "Portal". It is easy to misunderstood the context in which it is used.
- Portal as a project or deployed server
- Portals Container
- Portal as a type of a Site
In the end you can create new portal inside of portal but in context of specific portals container…. I guess this is one of reasons why term "Site" is used in exchange in the UI. However like I mentioned above it becomes tricky in connection with API where "Site" is generic interface.
To simplify things I would like to propose that we name "Group Site" (Site of type group) with new term - "Space". Then we should clearly define what to we refer as a "Site" in the UI. I imagine there are 2 scenarios:
1) "Site" refers to "Site of type portal". UI shows "Site Classic", "Site Sample" and /platform/users group "space".
In the Java API level there is object hierarchy - "PortalObject --> Site, Space, Dashboard". (PortalObject could be probably changed to something better - I lack invention atm.)
In the REST API level there are URL patterns like "/sites", "/spaces" and "/dashboards"
2) "Portal" refers to "Site of type portal". UI shows "Portal Classic", "Portal Sample" and /platofrm/users group "space". Management operations live under "Sites Management" however we UI exposes actions like "Add New Portal" and "Add New Space". Term "Site" needs to be used carefully as it can refer to "Portal", "Space" or "Dashboard".
In the Java API level there is object hierarchy "Site -> Portal, Space, Dashboard.
In the REST API level there are URL patterns like "/portals", "/spaces" and "/dashboards"