Hi all,

Long time gone, but I'm jumping into the world of web services at $work and need some advice. We're putting together an SOAP-based API and I have lots of questions about best practices for generating the SOAP responses. The platform is still open for discussion, but leaning towards Catalyst + Catalyst::Controller::SOAP + (XML::Compile::SOAP or SOAP::WSDL). The plan was to use SOAP 1.1 and WSDL 1.1.

Clients are very straightforward since we'll be publishing WSDL files, and XML::Compile::SOAP and SOAP::WSDL both seem to be work nicely out of the box. The docs are generally good for both, especially considering the large amount of functionality. We'll be creating a simple reference platform that will consume the services as a testbed, so client support is important.

The server side is not so straightforward. Perhaps the first question is: Are people writing SOAP servers with perl? Googling doesn't find much in recent history. I had been leaning towards XML::Compile::SOAP, but took a second look at SOAP::WSDL and was happy with the results from it too. Both support auto-configuration from a WSDL file (a must-have feature). And both have plans for better server support in the future. But I think Catalyst::Controller::SOAP will do the trick as long as I can generate a valid XML response to match the schema. I'm not even considering SOAP::Lite because of it's poor WSDL support and general slowness.

Method dispatch support for document/literal in Catalyst::Controller::SOAP seems to be missing so far. I hacked in support to look at the SOAPAction HTTP header but later read it's optional so I guess we'd look at the first element within the <Body> for a better approach. The wrapping of the response in the SOAP envelope looks useful as well.

Anyway, I'm rambling now, but I'd appreciate any advice you may offer.

Drew


In reply to State of SOAP/WSDL support by drewbie

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.