NAME
JSON::Schema::Modern::Error - Contains a single error from a JSON Schema evaluation
VERSION
version 0.595
SYNOPSIS
use JSON::Schema::Modern;
my $js = JSON::Schema::Modern->new;
my $result = $js->evaluate($data, $schema);
my @errors = $result->errors;
my $message = $errors[0]->error;
my $instance_location = $errors[0]->instance_location;
my $errors_encoded = encode_json(\@errors);
DESCRIPTION
An instance of this class holds one error from evaluating a JSON Schema with JSON::Schema::Modern.
ATTRIBUTES
keyword
The keyword that produced the error; might be undef
.
instance_location
The path in the instance where the error occurred; encoded as per the JSON Pointer specification (RFC 6901).
keyword_location
The schema path taken during evaluation to arrive at the error; encoded as per the JSON Pointer specification (RFC 6901).
absolute_keyword_location
The canonical URI or URI reference of the location in the schema where the error occurred; not defined, if there is no base URI for the schema and no $ref
was followed. Note that this is not a fragmentless URI in most cases, as the indicated error will occur at a path below the position where the most recent identifier had been declared in the schema. Further, if the schema never declared an absolute base URI (containing a scheme), this URI won't be absolute either.
error
The actual error string.
exception
Indicates the error's severity is sufficient to stop evaluation.
recommended_response
A tuple, consisting of [ integer, string ]
, indicating the recommended HTTP response code and string to use for this error (if validating an HTTP request). This could exist for things like a failed authentication check in OpenAPI validation, in which case it would contain [ 401, 'Unauthorized' ]
.
depth
An integer which indicates how many subschemas deep this error was generated from. Can be used to construct a tree-like structure of errors.
METHODS
TO_JSON
Returns a data structure suitable for serialization. Corresponds to one output unit as specified in https://json-schema.org/draft/2020-12/json-schema-core#section-12.3 and https://json-schema.org/draft/2020-12/output/schema, except that instanceLocation
and keywordLocation
are JSON pointers, not URI fragments, even in draft2019-09. (See the strict_basic
"output_format" in JSON::Schema::Modern, only available in that version, if the distinction is important to you.)
dump
Returns a JSON string representing the error object, according to the specification.
SUPPORT
Bugs may be submitted through https://github.com/karenetheridge/JSON-Schema-Modern/issues.
I am also usually active on irc, as 'ether' at irc.perl.org
and irc.libera.chat
.
You can also find me on the JSON Schema Slack server and OpenAPI Slack server, which are also great resources for finding help.
AUTHOR
Karen Etheridge <ether@cpan.org>
COPYRIGHT AND LICENCE
This software is copyright (c) 2020 by Karen Etheridge.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.