Re: SOAP in Pike?
"Stephen R. van den Berg" <[email protected]>
| Newsgroups | gmane.comp.lang.pike.user |
|---|---|
| Message-ID | <[email protected]> |
Stephen R. van den Berg wrote:
>It helped. Even though I originally didn't intend to, I got sidetracked and
>implemented something close to a full SOAP-wdsl parser.
>I'm currently determining what the most appropriate sync and/or async interface
>to Pike would be.
>Suggestions are welcome.
Maybe nobody cares, then again, maybe lyskom still has a treasuretrove of
messages on this SOAP-thread...
In any case, lo and behold, there now is usable SOAP in Pike 8.1:
- The wsdl parser works for a lot of types, but probably not all (yet).
The parser is not a fullblown-faithful implementation according to the RFC,
it's more like a minimal version that still allows meaningful communication.
The RFC spec on SOAP is unwieldy, to say the least.
- It uses the fashionable Promise interface.
Sample code:
Web.SOAP.Promise("https://foo.bar/Logon.svc?wsdl")
.on_success(lambda(Web.SOAP.Client soap) {
Web.SOAP.Arguments args, sh;
args = soap->getarguments("Logon");
sh = args->LogonRequestMsg;
sh->Username = "foo";
sh->Password = "bar";
sh->WebServiceType = "Publisher";
soap->call(args)
.on_success(lambda(mixed resp) {
string token = resp->CredentialToken;
});
});
This was about as clean as I could get SOAP (pun intended).
--
Stephen.