[Zope-dev] Request typing (to get the xmlrpc layer discussion finished)

Stephan Richter srichter at cosmos.phy.tufts.edu
Tue Dec 18 11:32:01 EST 2007


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


More information about the Zope-Dev mailing list