Hacker News new | ask | show | jobs
by facepalm 4149 days ago
OK, from that perspective it makes sense - if there are some APIs you just can't go without. I just don't want to touch SOAP ever again, not even with a 10 foot pole. But maybe if this makes SOAP invisible it could be acceptable - although I don't see how that could be possible.
1 comments

Short answer: we usually don't use SOAP unless it is strictly necessary in your system. We have simpler and/or more efficient protocols.

Long answer:

We do not use SOAP when it is not strictly necessary. Most Jolie programs use SODEP (our own open binary protocol) or HTTP/JSON or HTTP/XML. You do not need to deal with this manually, you just tell Jolie "use HTTP" or "use SODEP" in the deployment part. For example, this is how you expose your service in SODEP:

inputPort MyService { Location: "socket://localhost:80" Protocol: sodep Interfaces: MyIface }

and this is how you get the same thing but in HTTP:

inputPort MyService { Location: "socket://localhost:80" Protocol: http Interfaces: MyIface }

If you use Jolie to provide a SOAP service, it will most probably be completely invisible. You just have to choose soap and you are done:

inputPort MyService { Location: "socket://localhost:80" Protocol: soap Interfaces: MyIface }

Jolie will take care of using the right data formats without you noticing.

If you need to access an external SOAP service, there are many cases in which it can be invisible, but also many other cases in which you will have to tell Jolie some extra parameters in case some extensions or weird details need to be used.