UserPreferences

PaceReplaceSoapActionWithSoapHeader


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

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:


CategoryProposals