Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the error format #3

Open
AlexITC opened this issue Sep 16, 2018 · 0 comments
Open

Improve the error format #3

AlexITC opened this issue Sep 16, 2018 · 0 comments
Labels
enhancement New feature or request

Comments

@AlexITC
Copy link
Owner

AlexITC commented Sep 16, 2018

How it works

At the moment, an error is rendered like this:

{
  "type": "field-validation-error",
  "message": "An error message",
  "field": "email"
}

The fields have the following meaning:

  • type -> the type of error, or error category (mandatory).
  • message -> a user friendly message rendered on the user language (mandatory).
  • field -> this exists only because the type is field-validation-error.

How to improve it

There are some drawbacks on this approach:

  1. As there are several possible error types, this leads to several possible extra fields, hence, being hard to create types.
  2. Reacting against specific errors is painful, we need to match against the error message in order to detect specific errors.
  3. Extracting more information about the error could only be done by parsing the error message.

What to do:

  1. Render unique error identifiers.
  2. Render possible arguments related to the error.

A possible format could be:

{
  "id": "email-format-error",
  "type": "field-validation-error",
  "message": "The given email format is incorrect",
  "details": [
    { "key": "email", "value": "someone@something.com" },
    { "key": "field", "value": "email" }
  ]
}

This error format removes the drawbacks, whether to use key/value objects on the arguments or just a map is another thing to consider.

@AlexITC AlexITC added the enhancement New feature or request label Sep 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant