bionic (3) JSON::Validator::OpenAPI.3pm.gz

Provided by: libjson-validator-perl_1.08+dfsg-1_all bug

NAME

       JSON::Validator::OpenAPI - OpenAPI is both a subset and superset of JSON Schema

DESCRIPTION

       JSON::Validator::OpenAPI can validate Open API (also known as "Swagger") requests and responses that is
       passed through a Mojolicious powered web application.

ATTRIBUTES

       JSON::Validator::OpenAPI inherits all attributes from JSON::Validator.

   formats
       Open API support the same formats as JSON::Validator, but adds the following to the set:

       •   byte

           A padded, base64-encoded string of bytes, encoded with a URL and filename safe alphabet. Defined by
           RFC4648.

       •   date

           An RFC3339 date in the format YYYY-MM-DD

       •   double

           Cannot test double values with higher precision then what the "number" type already provides.

       •   float

           Will always be true if the input is a number, meaning there is no difference between  "float" and
           "double". Patches are welcome.

       •   int32

           A signed 32 bit integer.

       •   int64

           A signed 64 bit integer. Note: This check is only available if Perl is compiled to use 64 bit
           integers.

METHODS

       JSON::Validator::OpenAPI inherits all attributes from JSON::Validator.

   load_and_validate_schema
         $self = $self->load_and_validate_schema($schema, \%args);

       Will load and validate $schema against the OpenAPI specification. $schema can be anything "schema" in
       JSON::Validator accepts. The expanded specification will be stored in "schema" in JSON::Validator on
       success. See "schema" in JSON::Validator for the different version of $url that can be accepted.

       %args can be used to further instruct the expansion and validation process:

       • allow_invalid_ref

         Setting this to a true value, will disable the first pass. This is useful if you don't like the
         restrictions set by OpenAPI, regarding where you can use $ref in your specification.

       • version_from_class

         Setting this to a module/class name will use the version number from the class and overwrite the
         version in the specification:

           {
             "info": {
               "version": "1.00" // <-- this value
             }
           }

       The validation is done with a two pass process:

       1.
         First it will check if the $ref is only specified on the correct places.  This can be disabled by
         setting "allow_invalid_ref" to a true value.

       2.
         Validate the expanded version of the spec, (without any $ref) against the OpenAPI schema.

   validate_input
         @errors = $self->validate_input($data, $schema);

       This method will make sure "readOnly" is taken into account, when validating data sent to your API.

   validate_request
         @errors = $self->validate_request($c, $schema, \%input);

       Takes an Mojolicious::Controller and a schema definition and returns a list of errors, if any. Validated
       input parameters are moved into the %input hash.

   validate_response
         @errors = $self->validate_response($c, $schema, $status, $data);

       Copyright (C) 2014-2015, Jan Henning Thorsen

       This program is free software, you can redistribute it and/or modify it under the terms of the Artistic
       License version 2.0.

SEE ALSO

       JSON::Validator.

       <http://openapi-specification-visual-documentation.apihandyman.io/>