Dear *, naively I volunteered for a talk on zope in autumn to a (small) CS student audience. However, I must confess that do not understand the basics about the API: What is the most general and state-of-the-art way (including necessary imports from the zope python library), to non-interactively - add an Object o of type (class) t in context (directory location) c to Zope ? - call a method m of that object (that eg was found in its source code) ? - (optional) set and alter a public attribute a of that object ? - delete that Object o from context c ? Background: I naively assume that from a developers point of view, zope is nothing but a (great) storage bin for all kinds of objects (of course all the "hard stuff" has been done, with a nice user GUI, persistence, caching, transaction integrity etc). And then I felt reassured that is also nice to know that in principle everything(?) is accessible via (authenticated) XML-RPC: class XMLRPCMessageHandler(StackMessageHandler): def __init__ (self): self.stack = [] self.bat = BasicAuthTransport("guest","*****") self.server = xmlrpclib.Server("http://localhost:9673/", self.bat) self.server.manage_addDocument('foo3','Foo3','foo3s content') However, as far as I understand (OFSP/__init__.py of version 2.3.3-1, l. 121) "manage_addDocument" is a "legacy" API in the same way eg overuse of DTML is partly legacy-related, nor do I find a method for eg deleting documents in the Zope Book Appendix API doc. Also the ZSyncer source seems to give some hints but for me it is hard to differentiate ZSyncer-specific and general stuff. Again, the question is *not* about how to write Products/scripts/ZClasses but rather to demonstrate that there is an elegant and coherent approach to the API, its about http://www.zope.org//Wikis/DevSite/Projects/APIDocs/TheProblem ... (in case it boils down to RTFS pls point out which files or which products are fruitful) Many thanks in advance, -- Holger Blasum <holger@blasum.net> GnuPG 1024D/1CCA6604639C07F5146A
Holger Blasum wrote:
Dear *,
naively I volunteered for a talk on zope in autumn to a (small) CS student audience. However, I must confess that do not understand the basics about the API:
What is the most general and state-of-the-art way (including necessary imports from the zope python library), to non-interactively - add an Object o of type (class) t in context (directory location) c to Zope ? - call a method m of that object (that eg was found in its source code) ? - (optional) set and alter a public attribute a of that object ? - delete that Object o from context c ?
Look at Appendix B of the Zope Book: http://www.zope.org/Documentation/Guides/ZopeBook/AppendixB.dtml Specifically, look at the manage_addProduct documentation found in the ObjectManager class. Shane
participants (2)
-
Holger Blasum -
Shane Hathaway