Re: [Zope3-dev] xmlrpc introspection
On Friday 30 September 2005 12:55, Tarek Ziadé wrote: > I was wondering if there's actually any way to make xmlrpc introspection > in Z3, > so i can list methods from my rpc client. > > (it seems not, looking at the code and the agile doc there > http://svn.zope.org/Zope3/trunk/src/zope/app/publisher/xmlrpc/README.txt?re >v=38357&view=markup) No, it is not there. > I've thaught of wrapping my xmlrpc views with an adapter to provide the > 3 extra methods in the view class: > > class IXMLRPCIntrospector(View): > """IXMLRPCIntrospector View""" > > [...] some constructor [...] > > def listMethods(): > """ lists all xmlrpc methods implemented by the underlying view """ > > def methodHelp(method_name): > """ returns the docstring of given method """ > > def methodSignature(method_name): > """ returns the signature of given method > > ie the list of all arguments > """ > > Any advice ? I think the better solution would be to have those methods registered as views on all objects. Those methods then do some CA introspection to give the answers. > Would it be interesting to start a Z3 proposal on this topic ? Absolutely. It makes our XML-RPC implementation incomplete. Regards, Stephan -- Stephan Richter CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student) Web2k - Web Software Design, Development and Training ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
RE: [Zope3-dev] xmlrpc introspection
Hi Tarek [...] > class IXMLRPCIntrospector(View): > """IXMLRPCIntrospector View""" > > [...] some constructor [...] > > def listMethods(): > """ lists all xmlrpc methods implemented by the > underlying view """ > > def methodHelp(method_name): > """ returns the docstring of given method """ > > def methodSignature(method_name): > """ returns the signature of given method > > ie the list of all arguments > """ > > Any advice ? > > imo xmlrpc introspection can be useful in some cases > (in my case i need such feature to actually let the client application > remote-control the site) > > Would it be interesting to start a Z3 proposal on this topic ? 1+ Would be nice to have a best practices document or some more information about xmlrpc standards an thier integration in z3. Starting a proposal looks a good idea to me. Regards Roger Ineichen > Best regards, > > Tarek > > -- > Tarek Ziadé, Nuxeo R&D (Paris, France) > CPS Platform : http://www.cps-project.org > Zope3 / ECM : http://www.z3lab.org > mail: tziade at nuxeo.com; tel: +33 (0) 6 30 37 02 63 > > ___ > Zope3-dev mailing list > Zope3-dev@zope.org > Unsub: > http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch > > ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
Re: [Zope3-dev] xmlrpc introspection
I've run into precisely the same thing using JSON-RPC, and I did create a method to list all the other methods. However, I discovered through use that this was not nearly as simple as I thought. Because a single object can have multiple classes of JSON/XML methods, each one with their own or multiple view directives, and each view directive must specify the available methods, if each of those directives specifies a methodList method, then when you call it, you will likely get a list for a different class of methods than you were expecting. I'm sure there is some better way to implement it, but it seems it would require either some very messy coding, or some significant changes to the structure of Zope. Because it does not instantiate the view until after the method is requested, and it selects the view based on the requested method, it seems a generic methodList() is unlikely to be effective (unless you choose to keep all your methods for an object in a single view, which certainly would work in many cases, but was a pain for ours). Another possibility, it seems, would be to have a generic method that, in addition to introspecting the view it was called from, examined all the other views that might be applicable, and returned their methods. Any ideas for how to get around these limitations? I can't claim to be any sort of expert, so if I'm making false assumptions, or just plain wrong, please correct me. Take care, Alec Munro On 9/30/05, Tarek Ziadé <[EMAIL PROTECTED]> wrote: > Hi all, > > I was wondering if there's actually any way to make xmlrpc introspection > in Z3, > so i can list methods from my rpc client. > > (it seems not, looking at the code and the agile doc there > http://svn.zope.org/Zope3/trunk/src/zope/app/publisher/xmlrpc/README.txt?rev=38357&view=markup) > > -- > > If not, i've found this proposal on the web: > > > http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto-api-introspection.html > > I've thaught of wrapping my xmlrpc views with an adapter to provide the > 3 extra methods in the view class: > > class IXMLRPCIntrospector(View): > """IXMLRPCIntrospector View""" > > [...] some constructor [...] > > def listMethods(): > """ lists all xmlrpc methods implemented by the underlying view """ > > def methodHelp(method_name): > """ returns the docstring of given method """ > > def methodSignature(method_name): > """ returns the signature of given method > > ie the list of all arguments > """ > > Any advice ? > > imo xmlrpc introspection can be useful in some cases > (in my case i need such feature to actually let the client application > remote-control the site) > > Would it be interesting to start a Z3 proposal on this topic ? > > Best regards, > > Tarek > > -- > Tarek Ziadé, Nuxeo R&D (Paris, France) > CPS Platform : http://www.cps-project.org > Zope3 / ECM : http://www.z3lab.org > mail: tziade at nuxeo.com; tel: +33 (0) 6 30 37 02 63 > > ___ > Zope3-dev mailing list > Zope3-dev@zope.org > Unsub: http://mail.zope.org/mailman/options/zope3-dev/alecmunro%40gmail.com > > ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com
[Zope3-dev] xmlrpc introspection
Hi all, I was wondering if there's actually any way to make xmlrpc introspection in Z3, so i can list methods from my rpc client. (it seems not, looking at the code and the agile doc there http://svn.zope.org/Zope3/trunk/src/zope/app/publisher/xmlrpc/README.txt?rev=38357&view=markup) -- If not, i've found this proposal on the web: http://xmlrpc-c.sourceforge.net/xmlrpc-howto/xmlrpc-howto-api-introspection.html I've thaught of wrapping my xmlrpc views with an adapter to provide the 3 extra methods in the view class: class IXMLRPCIntrospector(View): """IXMLRPCIntrospector View""" [...] some constructor [...] def listMethods(): """ lists all xmlrpc methods implemented by the underlying view """ def methodHelp(method_name): """ returns the docstring of given method """ def methodSignature(method_name): """ returns the signature of given method ie the list of all arguments """ Any advice ? imo xmlrpc introspection can be useful in some cases (in my case i need such feature to actually let the client application remote-control the site) Would it be interesting to start a Z3 proposal on this topic ? Best regards, Tarek -- Tarek Ziadé, Nuxeo R&D (Paris, France) CPS Platform : http://www.cps-project.org Zope3 / ECM : http://www.z3lab.org mail: tziade at nuxeo.com; tel: +33 (0) 6 30 37 02 63 ___ Zope3-dev mailing list Zope3-dev@zope.org Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com