
On Thursday 10 September 2009 11:18:14 Klaus Kaempf wrote:
* Duncan Mac-Vicar Prett <dmacvicar@suse.de> [Sep 10. 2009 11:03]:
And what we describe as missing features is the ability to do:
class Interface < YastResource::Base any_that_implements 'org.opensuse.yast.network.interface' end
instead of using has_prefix
Definitely.
Actually, there's no possibility to control the resource URI in Rails because it is assembled from the controller name and module (namespace).
But this means, that we'll have to solve controller name conflicts anyway. If 2 of our partners develop a plugin with the same controller name, there will still be a name conflict problem.
And that's why we've choosen the 'implements interface' approach because it doesn't require any knowledge about the implementation (controller name) of the service side.
I see, that the benefit of interfaces is, that we can have several webservice resources implementing the same interface. Webserver chooses the proper resource according to the supplied interface name. I think this is a good approach (although we will still have to solve interface name conflicts of 3rd party plugins). What I see as the problem is, that the translation from "interface name" to "resource URI" is not factored out. The webclient may want to ask for webservice resource URI, but certainly not about whether the resource is "singular" or "nested". For example I cannot imagine a webclient plugin, which would change its behaviour according to change of "singular" or "nested". This info is only needed by proxy_for, which tries to be universal and all- encompassing. I think that Martin's problem (...any_that_implements 'org.opensuse.yast.network.interface'...) can be solved by directly using ResourceController on webservice. Then use the path from resource[:href] to appropriately setup an ActiveResource (actually the enriched Martin's version YastResource). Martin Kudlvasr PS: Later it would be nice to be able to get a URI from interface in a RESTful way. Like: resources/org.opensuse.yast.modules.yapi.time instead of: resources.xml?interface=org.opensuse.yast.modules.yapi.time
Klaus --- SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org