Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Eerst wordt de HTTP methode genoemd (POST), en de versie, dan volgen een aantal headers met HTTP gegevens. SOAP 1.1 verplicht het noemen van "text/xml" als Content-Type.


Image Added

Merk op: de HTTP Header "Content-Type" moet waarde "text/xml" bevatten.

...

Bij alle fouten heeft het de voorkeur in beschikbare tekst elementen (zoals SOAP:detail of HTTP Body) meer informatie op te nemen omtrent de fout.

HTTP-foutsituaties

Image Added

AORTA volgt de door WS-I Basic Profile gedefinieerde richtlijnen voor HTTP-fouten bij gebruik van SOAP.

...

INCORRECT:

<soapenv:Fault xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' >
    <!-- Onderstaande is fout omdat "dot" notatie niet is toegestaan -->
    <faultcode>soapenv:Client.ZIM.XSD_VALIDATION_ERR</faultcode> 
    <!-- Onderstaande is fout omdat child elementen van soapenv:Fault
         niet namespace gekwalificeerd mogen zijn -->
    <soapenv:faultstring> Het input document is niet valide</soapenv:faultstring>
    <soapenv:faultactor>http://www.aortarelease.nl/actor/lsp</soapenv:faultactor>
    <detail>
        <code>MissingMandatoryElement</code>
        <text>Een verplicht element mist in het input document: …..</text>

        <lsp:extraInfo xmlns:lsp= 'http://www.zim.nl/soapFault/detail'>

              Het missende element is verplicht geworden in release….

       </lsp:extraInfo>
    </detail>
</soapenv:Fault>



Image Added

Bij ontvangst van een bericht dat geen well-formed XML bevat, wordt bij voorkeur een HTTP response met status 400 'Bad Request' gegeven. Een applicatie dient ook rekening te houden met een SOAP Client Fault of een HL7v3 Accept Acknowledgement Error.

...

Dit omdat het niet exact te bepalen is welke fouten een applicatie het eerst dient te signaleren. Er is bijvoorbeeld geen verplichting eerst het hele XML-document te parsen om op well-formedness te controleren voordat verdere verwerking plaatsvindt. Bij niet well-formed XML hoeft geen SOAP Fault of HL7v3-error gegeven te worden.


Image Added

Een applicatie dient altijd op een bericht te reageren - uiteraard zolang de applicatie überhaupt tot reageren in staat is. Een uitzondering is wanneer een applicatie reden heeft aan te nemen dat er sprake is van een malicieuze actie, zoals een Denial Of Service aanval.


Image Added

Wanneer een applicatie niet op HL7v3-niveau kan reageren, bijvoorbeeld omdat er geen zinnige HL7v3-interactie uit het bericht te destilleren valt, of omdat er geen geschikte HL7v3-reactie voorhanden is, heeft de volgende reactie de voorkeur:

·       als er een fout is in de SOAP syntax, (bijvoorbeeld soapenv:Envelope zonder soapenv:Body of soapenv:Fault): een SOAP Client Fault, met HTTP status 500 'Internal Server Error';

·       als er een andere fout is in de syntax, een reactie met HTTP status 400 'Bad Request';

·       wanneer er geen fout is in de syntax, maar er serverproblemen zijn, een reactie met HTTP Status 500 'Internal Server Error', eventueel gevuld met een SOAP Server Fault.



Image Added

Bij foutafhandeling dient het principe gevolgd te worden: "wees strikt in wat je zendt, en tolerant bij fouten die je ontvangt". De afhandeling als hier geschetst heeft de voorkeur, bij ontvangst van onverwachte fouten dient een applicatie echter adequaat te reageren, bijvoorbeeld door de fout te loggen voor menselijke afhandeling.

...

Code

Naam

Toelichting (zie HL7v3 voor details)

HTTP Status

AA

Application Acknowledgement Accept

Succesvolle verwerking.

200 OK

AE

Application Acknowledgement Error

Fout in bericht (permanent).

200 OK

AR

Application Acknowledgement Reject

Fout, maar niet in inhoud of formaat van bericht (tijdelijk).

200 OK

CA

Accept Acknowledgement Commit Accept

Geaccepteerd.

200 OK

CE

Accept Acknowledgement Commit Error

Niet geaccepteerd (permanent).

200 OK[1]

CR

Accept Acknowledgement Commit Reject

Niet geaccepteerd (tijdelijk).

200 OK

 

Image Added

HL7v3 Application en Accept Acknowledgements worden behandeld als succes op HTTP niveau.

...