As Coolo “announced” the week before last in his mail about his hackweek project we’re about to marry the WEBUI with the API. Adrian, Ancor, Coolo and me, Henne, just had a meeting about how we go about to push forward with this unholy communion. Here are the results, but first let me explain how we came to the decision to do this:
Over time the initial design decision to make the WEBUI just another API client has proven to be a huge burden for WEBUI development. Especially because it separates the WEBUI from the API database where nearly all the OBS data is stored/referenced.
This separation not only introduces another layer in between (activexml) with all the overhead such a layer brings in terms of network, parsing, rendering etc. this separation also forces us to replicate a lot of the cool (database) abstraction a framework such as Ruby on Rails brings.
Additionally it raises the hurdle for new (RoR) developers to contribute as they need to learn all the inner workings of this setup and it hinders the adoption of new (RoR) tools and best practices as it’s so different.
In the last couple of months we explored to minimize the problem by having a special WEBUI route in the API that only serves/receives data specially crafted for/by the WEBUI. This already helped a lot but is still not enough in our opinion. This is why we are going to eliminate this separation
Obviously we’re getting rid of the separation to expose the API database to the WEBUI and ultimately converting everything to the “frontend” (name not chosen yet..) an RoR app that serves the XML API and the HTML views. In order to get there we agreed to do the following three sprints:
You can find the progress of these sprints online in issue 450.