balanced / balanced-api

Balanced API specification.
220 stars 72 forks source link

Return consistent log response #651

Closed kyungmin closed 10 years ago

kyungmin commented 10 years ago

It is impossible to extract useful error description from the log response, with the inconsistent formats:

{
  "errors": [
    {
      "status": "Bad Request",
      "category_code": "request",
      "additional": null,
      "status_code": 400,
      "category_type": "request",
      "extras": {
        "destination": "Missing required field [destination]"
      },
      "request_id": "OHM56429234e82811e3b1c602b12035401b",
      "description": "Missing required field [destination] Your request id is OHM56429234e82811e3b1c602b12035401b."
    }
  ]
}
{
  "status": "Bad Request",
  "category_code": "request",
  "description": "Invalid field [expiration_year] - \"\" is not an integer Your request id is OHM8fe5b466f8f511e3a82802a1fe52a36c.",
  "_uris": {},
  "status_code": 400,
  "category_type": "request",
  "extras": {
    "expiration_year": "\"\" is not an integer"
  },
  "request_id": "OHM8fe5b466f8f511e3a82802a1fe52a36c",
  "additional": null
}
{
  "status": "Conflict",
  "category_code": "card-not-validated",
  "description": "Card cannot be validated. Your request id is OHMae618212fd4b11e3ab2502a1fe52a36c.",
  "_uris": {},
  "status_code": 409,
  "category_type": "logical",
  "extras": {},
  "request_id": "OHMae618212fd4b11e3ab2502a1fe52a36c",
  "additional": null
}
mjallday commented 10 years ago

You're confusing revision 1.0 and 1.1 response payloads.

They are consistent within the revision that you're using. If a user uses and receives API revision 1.0 then the logged response will also be 1.0.

kyungmin commented 10 years ago

Can rev 1.1 at least return more descriptive category_code instead of just request?

mjallday commented 10 years ago

yes, that appears to be an actual bug. can you give us the OHM for that request and i'll get someone to look into it.

kyungmin commented 10 years ago

OHM8fe5b466f8f511e3a82802a1fe52a36c (example above)