Fo01Bericht en responsecode

Dit is een statische kopie van het eerdere discussie.kinggemeenten.nl.
Nieuwe discussies kunnen in de GitHub repository 'StUF standaarden' als issue worden opgevoerd.

8 reacties / 0 nieuw
Kris van Kooten
Fo01Bericht en responsecode

In case of a SOAP error while processing the request, the SOAP HTTP server MUST issue an HTTP 500 "Internal Server Error" response and include a SOAP message in the response containing a SOAP Fault element (see section 4.4) indicating the SOAP processing error.

Wat is de waarheid. Bij het terugsturen van een Fo01/Fo02 of Fo03 bericht: moet de responsecode nu 500 zijn of mag deze ook 200 zijn. Tenslotte is het geen internal server error en ook geen standaar SOAP:Fault

Robert Melskens

Kris,

Zelf kan ik je hier niet bij helpen maar wellicht anderen wel. Daarvoor is het echter wel handig als je even aangeeft waar de aangehaalde tekst precies gevonden kan worden.

Kris van Kooten

W3C: Simple Object Access Protocol (SOAP) 1.1

https://www.w3.org/TR/2000/NOTE-SOAP-20000508/

Maarten van den...

From WS-I Basic profile:
An INSTANCE MUST use a “500 Internal Server Error” HTTP status code if the response message is a SOAP Fault.

De conclusie is dus dat bij het terugsturen van een Fo01/Fo02/Fo03 als een SOAP Fault, de HTTP status code 500 moet zijn.

Een Fo01-bericht en Fo02-bericht kunnen ook als output in de operation in de wsdl worden gedefinieerd. In dat geval ligt de HTTP status code in de 200+ reeks.

Kris van Kooten

Dank voor de reactie.

Betekend dit dat op onderstaande operations bij een Fo02 bericht een 200 teruggestuurd mag worden? 

of juist niet omdat het als fault is beschreven?

<operation name="geefZaakdocumentLezen_Lv01">
            <input message="ZKN:edcLv01"/>
            <output message="ZKN:edcLa01"/>
            <fault name="fout" message="StUF:Fo02"/>
        </operation>
        <operation name="geefZaakstatus_Lv01">
            <input message="ZKN:zakLv01"/>
            <output message="ZKN:zakLa01"/>
            <fault name="fout" message="StUF:Fo02"/>
        </operation>
        <operation name="geefZaakdetails_Lv01">
            <input message="ZKN:zakLv01"/>
            <output message="ZKN:zakLa01"/>
            <fault name="fout" message="StUF:Fo02"/>
        </operation>
        <operation name="geefLijstZaakdocumenten_Lv01">
            <input message="ZKN:zakLv01"/>
            <output message="ZKN:zakLa01"/>
            <fault name="fout" message="StUF:Fo02"/>
        </operation>

Maarten van den...

In dit voorbeeld moet je een 500 http statuscode terugzenden.

Kris van Kooten

Dank voor de info, maar het is wel vreemd. Je zou toch een 500 verwachten bij technische fouten (internal server error).

En bij een 200+ controleer je op de inhoud ivm eventueel functionele fouten. Hoe denk je hierover?

Maarten van den...

Kan me voorstellen dat je het vreemd is, maar het is nu eenmaal zo. Ik denk dat je er niet te veel achter moet zoeken en het gewoon moet implementeren zoals voorgeschreven.