NAME
JSON::API::Error - JSON API-style error objects
SYNOPSIS
use JSON::API::Error;
use Mojo::JSON qw/encode_json/;
# A JSON API error representing bad submission data
my $err = JSON::API::Error->new({
source => {pointer => '/forename'},
status => '400',
title => 'Field required',
});
# Field required
say $err->title;
# /forename: Field required
say "$err";
# {
# "source": {
# "pointer": "/forename"
# },
# "status": "400",
# "title": "Field required"
# }
say encode_json $err;
say encode_json $err->TO_JSON;
# A JSON API error representing a missing resource
my $err = JSON::API::Error->new({
status => '404',
title => 'Not Found',
});
# {
# "status": "404",
# "title": "Not Found"
# }
say encode_json $err;
say encode_json $err->TO_JSON;
DESCRIPTION
JSON::API::Error provides a JSON API error object
<
http://jsonapi.org/format/#error-objects>. It is intended to provide a
consistent error interface that can be digested by front and backend
software.
The front end will receive an ARRAY of these objects when there is an
error. It should contain enough information to be able to add custom
errors to specific form elements.
ATTRIBUTES
JSON::API::Error implements the following attributes.
code
An application-specific error code, expressed as a string value.
detail
A human-readable explanation specific to this occurrence of the
problem. Like title, this field's value can be localized.
id
A unique identifier for this particular occurrence of the problem.
links
A links object <
http://jsonapi.org/format/#document-links> containing
the following members:
about: a link that leads to further details about this particular
occurrence of the problem.
meta
my $err = JSON::API::Error->new(
{
meta => {
length => 5,
detail => "Field length is 5, should be at least 30"
},
source => {pointer => "/forename"},
status => '400',
title => "Field length",
}
);
A meta object containing non-standard meta-information about the error.
Can be used to include more detail about the error.
source
An object containing references to the source of the error, optionally
including any of the following members:
pointer: a JSON Pointer [RFC6901] to the associated entity in the
request document [e.g. "/data" for a primary data object, or
"/data/attributes/title" for a specific attribute].
parameter: a string indicating which URI query parameter caused the
error.
status
The HTTP status code applicable to this problem, expressed as a string
value.
title
A short, human-readable summary of the problem that SHOULD NOT change
from occurrence to occurrence of the problem, except for purposes of
localization.
METHODS
JSON::API::Error implements the following methods.
TO_JSON
Returns the object instance as a HASH reference, suitable for encoding
to JSON.
OPERATORS
JSON::API::Error overloads the following operators.
bool
my $bool = !!$err;
Always true.
stringify
my $str = "$err";
Alias for to_string.
AUTHOR
Paul Williams <
[email protected]>
COPYRIGHT
Copyright 2018- Paul Williams
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
https://metacpan.org/pod/Mojolicious::Plugin::OpenAPI,
http://jsonapi.org/,
http://jsonapi.org/format/#errors.