On Monday 17 December 2007, Christian Zagrodnick wrote:
a couple of weeks ago there was some discussion about the skin/layer support for XML-RPC which I implemented without asking (shame on me). As some time has passed now everybody could have some fresh thoughts about it.
Since the original implementation and discussion, I had a lot more time to discuss this proposal with Roger (who was heavily in favor of it), think about it, and work on other HTTP-based protocols. Thus, I am now in favor of a solution. It is good that you laid out the implementation details as well.
Let me first summarise:
* Skin and layers should be seen as typing the request.
Well, that's what they actually do.
* There are no general objections against having layers for XML-RPC.
I think there were pretty strong objections to layers for XML-RPC and all other non-browser HTTP requests.
* There are objections against using ++skin++ for XML-RPC, ++api++ would be fine.
I think I was against anything typing non-browser related.
Therefore we propose to:
* Create in zope.publisher.interfaces:
class IRequestType(zope.interface.interfaces.IInterface): pass
This is good.
* Rename IXMLRPCSkinType to IXMLRPCAPIType(IRequestType) and create a traverser ++api++ for IXMLRPCApiType.
This would not fulfill the use case that Fred brought up in his response to the proposal. I really like his points and his historical considerations. I think, it would be ideal to have one way to specify the request type, maybe through ++type++. If, for legacy reasons, ++skin++ is easier to use, then that's fine with me too. Let's widen our considerations to JSON and REST as well. What do others think?
* Use IRequestType as new base of IBrowserSkinType (instead of IInterface).
Okay.
* Do *not* provide any traverser for IRequestType since the traversers should be close to the “channel†so it is easy to understand what is happening. If the traverser name is too far fetched we end in confusion like with skin for xmlrpc.
Right, this is very important. The same rule should apply for IBrowserRequest; see the other discussion thread of this mail. Regards, Stephan -- Stephan Richter CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student) Web2k - Web Software Design, Development and Training