Errormessages

Från Vendre Help
Hoppa till: navigering, sök

Specification

ID (optional)
A unique identifier for this particular occurrence of the problem. Can be used if the error is logged to improve troubleshooting.
STATUS (optional)
The HTTP status code applicable to this problem.
CODE (required)
An application-specific error code. The meaning can be internal or public depending on sensitivity. Facilitates troubleshooting. Sensitive information can be hidden behind a code. Localization of error messages can be done through this code.
PUBLIC (optional)
A boolean indicating if TITLE and DETAIL can be shown to end users. It SHOULD be present if either TITLE or DETAIL is provided.
TITLE (optional)
A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
DETAIL (optional)
A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.
SOURCE (optional)
An object containing references to the primary source of the error. It SHOULD include one of its properties or be omitted. Useful when troubleshooting or showing validation errors.
POINTER
A JSON Pointer [RFC6901] to the value in the request document that caused the error.
PARAMETER
A string indicating which URI query parameter caused the error.
HEADER
A string indicating the name of a single request header which caused the error.

Examples

VQL - Invalid attribute and invalid relation

The query can return valid data in addition to one or more errors.

Request
{
  "query:MinProdukt": {
    "products": {
      "filters": {
        "where": {
          "id": 183
        },
        "limit": 10
      },
      "fields": [
        "id",
        "name",
        "tax_rate",
        "invalid_attribute",
        {
          "invalidRelation": {
            "fields": [
              "_all"
            ]
          }
        }
      ]
    }
  }
}
Response
{
  "data": {
    "MinProdukt": {
      "products": [
        {
          "id": 183,
          "name": "Clementine Dress",
          "tax_rate": 25
        }
      ]
    }
  },
  "errors": [
    {
      "id": "062b392d-fb87-48bf-a898-54615a5946c0",
      "status": "422",
      "code": "VQL_ERROR_INVALID_ATTRIBUTE",
      "public": true,
      "title": "Invalid attribute requested.",
      "detail": "The requested attribute: invalid_attribute is invalid.",
      "source": {
        "pointer": "/query:MinProdukt/products/fields/3"
      }
    },
    {
      "id": "5fd5445d-f670-42d5-a966-a3d13d218f4c",
      "status": "422",
      "code": "VQL_ERROR_INVALID_RELATION",
      "public": true,
      "title": "Invalid relation requested.",
      "detail": "The requested relation: invalid_relation is invalid.",
      "source": {
        "pointer": "/query:MinProdukt/products/fields/4"
      }
    }
  ]
}

VQL - Invalid json

Request
{
  "invalid_json": {
}
Response
{
  "errors": [
    {
      "status": "400",
      "code": "VQL_ERROR_MALFORMED_BODY",
      "public": false,
      "title": "Malformed request body."
    }
  ]
}

Surface - 403

Request
{
  "route": "surface/1/voucher/value?voucher=2",
  "method": "POST"
}
Response
{
  "errors": [
    {
      "status": "403",
      "code": "VOUCHER_ERROR_8C3D7270"
    }
  ]
}

Surface - 403 with title

Request
{
  "route": "surface/1/voucher/value?voucher=2",
  "method": "POST"
}
Response
{
  "errors": [
    {
      "status": "403",
      "code": "VOUCHER_ERROR_8C3D7270",
      "public": false,
      "title": "Disabled through cright."
    }
  ]
}

Surface - title that can be used

Request
{
  "route": "surface/1/bankid/qr-token",
  "method": "GET"
}
Response
{
  "errors": [
    {
      "status": "422",
      "code": "BANKID_NO_ACTIVE_SESSION",
      "public": true,
      "title": "BankID session not started."
    }
  ]
}