Wednesday, October 26, 2005

SOAP? Why SOAP?

When we started designing the protocols into the server. We thought about what protocol to POST to the server. In general, I think SOAP is very heavyweight, but mainly when using RPC-Style SOAP. Document-style SOAP is actually fairly lightweight.

What if you wanted to use XML, but not SOAP. You might have something simple like:

<CreateFolderRequest>
<folder name="...."/>
</CreateFolderRequest>

How much extra work is it to make that a document-style SOAP request?

Not much, really:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<CreateFolderRequest>
<folder name="...."/>
</CreateFolderRequest>
</soap:Body>
</soap:Envelope>


That is it. Not much extra baggage, and you have a document-style SOAP request.

BTW. Parsing large XML responses in a browser can be very slow. Our server lets you post requests in SOAP, and get them back in JSON. The client then just evals the JSON.