Abstract
Replace use of SOAPAction in APP draft02 with a SOAP header.
Status
Discussion
Rationale
To maximise the chances of all the data being preserved crossing systems that drop/remove HTTP headers and/or do not support methods other than GET|POST while meeting the Atom charter's mandate to use HTTP.
Proposal
-
Mandate SOAP 1.2
-
Use an APP defined SOAP header to declare the HTTP method being tunneled
-
Profile XML content in this case to be SOAP's.
6 Appendix A - SOAP Enabling
All servers SHOULD support the following alternate interface mechanisms to enable a
wider variety of clients to interact with Atom Publishing Protocol servers. The
following requirements are in addition to the ones listed in the Functional
Specification Section. If a server supports SOAP1.2 Enabling then it MUST support
all of the following.
6.1 Servers
1. All servers MUST support the limited use of SOAP1.2 as described below in the Client section.
2. All servers MUST be able to process XML as defined by SOAP1.2.
3. Servers MUST accept content in a SOAP1.2 Envelope, and if they receive a request that is wrapped
in a SOAP Envelope then they MUST wrap their responses in SOAP1.2 envelopes or produce a SOAP
Fault in accordance with the SOAP1.2 HTTP Binding.
6.2 Clients
1. Clients SHOULD use the appropriate HTTP Method when possible.
2. When the appropriate method cannot be used, they MUST use POST. Clients MUST also wrap their
XML payload in a SOAP1.2 Envelope. include a SOAP1.2 header as follows in the SOAP envelope
(where {METHOD} is replaced by the desired HTTP Method):
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<atom:method
xmlns:atom="http://purl.org/atom/appmethod/"
env:mustUnderstand="true">{METHOD}</atom:method>
</env:Header>
<env:Body>...</env:Body>
</env:Envelope>
Impacts
Atom Publishing Protocol drafts after revision 02: Section 6 Appendix A - SOAP Enabling.
Notes
Open issues:
-
SOAP 1.2. Why not 1.2?
-
Once you start using a SOAP envelope, you accept the SOAP XML profile
-
Once you start using a SOAP envelope, you run into all the issues re bianry content
-
SHOULD/MUST the server return another SOAP envelope in the response
