|There's more than one way to do things|
Implementing WSDL-oriented SOAP applications in Perlby ruoso (Curate)
|on Apr 02, 2008 at 17:18 UTC||Need Help??|
This post is mostly an update of the features of the Catalyst::Controller::SOAP module, but since this is a groundbreaking release and that you now can deploy easily WSDL oriented services, I thought it is worth a post here.
RPC Literal is an alternative to RPC/Encoded, as many people don't like SOAP-Encoding. You still have the RPC semantics and the input and output are parsed according to the WSDL
Also known as Document/Literal-Bare, this is a usage where each endpoint has only one operation. This way, your operation look like
THIS IS IMPLEMENTED FOR COMPATIBILITY REASONS ONLY, and provides an endpoint that delays the dispatch based on the SOAPAction header. Please see Catalyst::Controller::SOAP::DocumentLiteralWrapped documentation for a detailed explanation of why this usage SUCKS
Here the programming semantics are the same of RPC/Literal, but the parsing semantics are the same of Document/Literal.
BUT I, AGAIN, WARN YOU THAT THIS IS A PSEUDO-STANDARD DEFINED BY MICROSOFT THAT IS HTTP-SPECIFIC, AND SHOULD BE DISCOURAGED. RPC/Literal CAN IMPLEMENT THE EXACT SAME MESSAGES THAN Document/Literal-Wrapped AND KEEPS THE DISPATCHING SEMANTICS SANE.
And what about client use?
Catalyst::Controller::SOAP have the companion Catalyst::Model::SOAP that maps stub methods for every operation as described by XML::Compile::WSDL11.
So, happy hacking...