Skip to content

Rückmeldung von Fehlern

Marvin Menzerath edited this page Sep 27, 2016 · 3 revisions

Kommt es bei der Bearbeitung eines Request der REST Api zu einem Fehler wird stets die JSON Repräsentation eines ExceptionDescriptors zurückgegeben. Diese beinhaltet einen Fehlercode, den Namen des Fehlers oder der Ausnahme, sowie eine kurze Beschreibung.

Beispiel:

{
  "code": 4040,
  "name": "Not Found",
  "message": "The requested resource could not be found"
}

Beim Auftreten von Validierungsfehlern wird ein ConstraintViolationExceptionDescriptor zurückgegeben:

{
  "violations": [
    {
      "code": 6202,
      "constraint": "ValidOwnerNames",
      "field": "ownerNames",
      "message": "must contain names of existing users"
    },
    {
      "code": 6003,
      "constraint": "Min",
      "field": "number",
      "value": "0",
      "message": "must be greater than or equal to 1"
    },
    {
      "code": 6002,
      "constraint": "Size",
      "field": "label",
      "value": "Test dddddddddddddddddddddddddd2",
      "message": "size must be between 1 and 11"
    }
  ],
  "code": 4001,
  "name": "Constraint Violation",
  "message": "Missing fields or invalid values"
}

Fehlercodes

Die ersten drei Ziffern des Fehlercode stimmen mit dem zurückgegebenen HTTP Statuscode überein. Die letzte Ziffer wird zur weiteren Unterscheidung verwendet.

Ausnahme ConstraintViolations: Zur detaillierten Beschreibung der aufgetretenen Validierungsfehler ist der gesamte 6XXX Bereich reserviert, wobei die ersten drei Ziffern hier ohnehin keinen gültigen Statuscode ergeben.

Fehler auf Seiten des Clients

  • 4000: Bad Request
  • 4001: Constraint Violation
  • 4002: Empty Body
  • 4030: Forbidden
  • 4003: Invalid Json
  • 4060: Not Acceptable
  • 4050: Method not allowed
  • 4010: Not Authorized
  • 4040: Not Found
  • 4150: Not Supported

ConstraintViolations

  • 6000: UnknownContraintViolation (falls kein eigener Fehlercode definiert)
  • 6001: NotNull
  • 6002: Size
  • 6003: Min
  • 6004: Max
  • 6005: Digits
  • 6101: TimeSlot
  • 6102: EMail
  • 6103: IpAddress
  • 6200: ValidName (falls kein eigener Fehlercode definiert)
  • 6201: ValidOwnerName
  • 6202: ValidOwnerNames
  • 6203: ValidTransmitterGroupNames
  • 6204: ValidCallSignNames
  • 6205: ValidRubricName
  • 6206: ValidNodeName
  • 6207: ValidTransmitterNames

Fehler auf Seiten des Servers

  • 5000: Internal Server Error
  • 5001: Unknown Internal Server Error
  • 5031: No Quorum
  • 5030: Service Unavailable