Versions Compared

Key

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

...

Ontwikkelaars hebben behoefte aan zoveel mogelijk gedetailleerde informatie nij bij HTTP-foutmeldingen om zo snel mogelijk de oorzaak van de foutmelding te kunnen achterhalen, Eindgebruikers daarentegen dienen zo beknopt mogelijke informatie bij een foutmelding te krijgen daar deze informatie ook interessant kan zijn voor mogelijke hackers.

...

De filosofie die wordt toegepast bij koppeltaal is dat er enkel in het geval van geslaagde authenticatie en autorisatie een inhoudelijke melding over de resources wordt  gegevengegeven. In dat  geval geval is het de bedoeling specifiek en breedsprakig te zijn over de details van de fout. In het geval van autorisatiefouten is het juist de bedoeling spaarzaam met details te zijn, om zo eventueel misbruik van de informatie te minimaliseren.

...

  • 400 – Onjuiste aanvraag - Het verzoek was ongeldig of kan niet worden uitgevoerd. De exacte fout moet worden uitgelegd in de payload content, zie OperationOutcome resource. Bijv. "diagnostics": "veld% param1% is niet geldig" (Validatie fouten).
  • 401 – Onbevoegd - Het verzoek vereist een gebruikers authenticatie
  • 403 – Verboden - De server heeft het verzoek begrepen, maar weigert het of de toegang is niet toegestaan.
  • 404 – Niet gevonden - Er zijn geen gegevens aanwezig bij de aangegeven URI.
  • 405 – Methode niet toegestaan. Gegevens bestonden niet voor de aanpassing en de aangegeven identificatie van de client mag niet voor de interactie gebruikt worden
  • 406 - Aanvraag niet geaccepteerd. De aanvraag voldoet niet aan het formaat dat door de server ondersteunt wordt
  • 409  - Conflict op wijzigingsverzoek. De server heeft de bron gelockt waardoor wijziging niet mogelijk is. Ook wel pessimistische locking genoemd. 
  • 410 – Weg - De gegevens zijn niet langer beschikbaar op de oorspronkelijke server en dat deze toestand waarschijnlijk permanent is 
  • 412 - Pre-conditie faalt. Als de versie-id in de If-Match niet overeenkomt. Ook wel optimistiche locking genoemd. Deze melding kan bij bij (FHIR) REST API PUT/PATCH/DELETE-verzoeken voorkomen.
  • 415 – Media-type niet ondersteund
  • 422 – Aanvraag kan niet verwerkt worden - De aangeboden gegevens voldoen niet aan bepaalde FHIR profielen of server bedrijfsregels
  • 429 - Te veel aanvragen. Kans op een DDS aanval of de aanvraag kan niet afgehandeld worden door bepaalde systeem limieten   

Technische fouten.

Dit zijn run-time fouten die optreden als gevolg van het niet kunnen uitvoeren van bepaalde processen, query’s, methoden, enz. Ze hoeven geen onderdeel te zijn van het functionele ontwerp van het systeem. In een technisch interface document of API (Application Programming Interface) moeten de technische fouten in detail beschreven staan.

De cliënt kant kan niks wijzigen om zijn aanvraag te laten slagen. Als een 5xxeen 5xx-fout optreedt, moet de stack-trace worden vastgelegd bij de server en niet als response geretourneerd worden.  

  • 500 – Interne serverfout, Dit kunnen technische of connectie problemen zijn met het backend systeem.
  • 501 – Server heeft de HEAD aanvraag niet geïmplementeerd. HEAD is hetzelfde als GET, maar dan zonder body. 
  • 503 – Dienst niet beschikbaar. De aangeboden dienst kan in onderhoud zijn.

...

Als het een validatiefout is, neem dan op waarom het is mislukt, waar het is mislukt en welk deel ervan is mislukt. Een bericht als "400 – Ongeldige invoer" is een onduidelijke foutmelding, waardoor kostbare ontwikkeltijd wordt verspild. Wees beschrijvend en voeg context toe: "Kan postcode niet plaatsen: het veld 'postalCode' moet het volgende patroon hebben  'hebben \ d {4} [A-Z] {2}' (kreeg AB2A 23)".

FHIR definieert een OperationOutcome resource die gebruikt kan worden om specifieke gedetailleerde  gedetailleerde verwerkbare (fout) informatie over te brengen. De OperationOutcome kan worden geretourneerd met elke HTTP 4xx- of 5xx-reactie, maar dit is niet vereist - veel van deze fouten kunnen worden gegenereerd door een generieke server dat ten grondslag ligt aan een FHIR-server.

...

  • 400 – Onjuiste aanvraag - Het verzoek was ongeldig of kan niet worden uitgevoerd. De exacte fout moet worden uitgelegd in de payload content, zie OperationOutcome resource. Bijv. "diagnostics": "veld% param1% is niet geldig" (Validatie fouten).
  • 401 – Onbevoegd - Het verzoek vereist een gebruikers authenticatie
  • 403 – Verboden - De server heeft het verzoek begrepen, maar weigert het of de toegang is niet toegestaan.
  • 404 – Niet gevonden - Er zijn geen gegevens aanwezig bij de aangegeven URI.
  • 405 – Methode niet toegestaan. Gegevens bestonden niet voor de aanpassing en de aangegeven identificatie van de client mag niet voor de interactie gebruikt worden
  • 406 - Aanvraag niet geaccepteerd. De aanvraag voldoet niet aan het formaat dat door de server ondersteunt wordt
  • 409  - Conflict op wijzigingsverzoek. De server heeft de bron gelockt waardoor wijziging niet mogelijk is. Ook wel pessimistische locking genoemd. 
  • 410 – Weg - De gegevens zijn niet langer beschikbaar op de oorspronkelijke server en dat deze toestand waarschijnlijk permanent is 
  • 412 - Pre-conditie faalt. Als de versie-id in de If-Match niet overeenkomt. Ook wel optimistiche locking genoemd. Deze melding kan bij bij (FHIR) REST API PUT/PATCH/DELETE-verzoeken voorkomen.
  • 415 – Media-type niet ondersteund
  • 422 – Aanvraag kan niet verwerkt worden - De aangeboden gegevens voldoen niet aan bepaalde FHIR profielen of server bedrijfsregels
  • 429 - Te veel aanvragen. Kans op een DDS aanval of de aanvraag kan niet afgehandeld worden door bepaalde systeem limieten   limieten

Technische fouten.

Dit zijn run-time fouten die optreden als gevolg van het niet kunnen uitvoeren van bepaalde processen, query’s, methoden, enz. Ze hoeven geen onderdeel te zijn van het functionele ontwerp van het systeem. In een technisch interface document of API (Application Programming Interface) moeten de technische fouten in detail beschreven staan.

De cliënt kant kan niks wijzigen om zijn aanvraag te laten slagen. Als een 5xxeen 5xx-fout optreedt, moet de stack-trace worden vastgelegd bij de server en niet als response geretourneerd worden.  

  • 500 – Interne serverfout, Dit kunnen technische of connectie problemen zijn met het backend systeem.
  • 501 – Server heeft de HEAD aanvraag niet geïmplementeerd. HEAD is hetzelfde als GET, maar dan zonder body. 
  • 503 – Dienst niet beschikbaar. De aangeboden dienst kan in onderhoud zijn.

...

Als het een validatiefout is, neem dan op waarom het is mislukt, waar het is mislukt en welk deel ervan is mislukt. Een bericht als "400 – Ongeldige invoer" is een onduidelijke foutmelding, waardoor kostbare ontwikkeltijd wordt verspild. Wees beschrijvend en voeg context toe: "Kan postcode niet plaatsen: het veld 'postalCode' moet het volgende patroon hebben  hebben '\ d {4} [A-Z] {2}' (kreeg AB2A 23)".

FHIR definieert een OperationOutcome resource die gebruikt kan worden om specifieke gedetailleerde  gedetailleerde verwerkbare (fout) informatie over te brengen. De OperationOutcome kan worden geretourneerd met elke HTTP 4xx- of 5xx-reactie, maar dit is niet vereist - veel van deze fouten kunnen worden gegenereerd door een generieke server dat ten grondslag ligt aan een FHIR-server.

...