Revision history for OpenAPI-Modern
0.056 2023-12-31 17:26:55Z
- bump optional dependency on HTTP::Headers::Fast for a psgi
interface (GH#70)
0.055 2023-12-31 06:21:46Z
- fix incompatibility with JSON::Schema::Modern 0.578
0.054 2023-12-20 19:41:20Z
- now making use of "recommended_response" in JSON::Schema::Modern to
recommend an HTTP response code and message to use after certain
request validation failures
0.053 2023-12-13 05:01:33Z
- no longer improperly reporting 4xx response errors as validation
failures when message has actually been transmitted
0.052 2023-11-26 23:48:32Z
- "recursive_get" now optionally takes a target entity type
- support added for validation of Plack::Request and Plack::Response
objects
0.051 2023-11-13 01:02:33Z
- Content-Length checking is now more properly consistent with
RFC9112; some users of HTTP::Request and ::Response objects may
need to make adjustments in their tests to be compliant
- track all subschema locations, not just schema roots, for better
$ref verification
0.050 2023-11-06 03:10:15Z
- fix construction of an OpenAPI::Modern object with a
pre-constructed JSON::Schema::Modern::Document::OpenAPI object
- "recursive_get" moved from JSON::Schema::Modern::Document::OpenAPI
to OpenAPI::Modern
- when validating header strings against a string schema, no longer
parse out internal whitespace surrounding commas (to use RFC9112
semantics, validate as an array).
0.049 2023-10-29 01:01:38Z
- fix "recursive_get" to take a uri-reference, rather than a json
pointer
- fix some "discriminator" tests that fail with JSON::Schema::Modern
0.574, and some inconsistencies with the spec
0.048 2023-10-04 05:34:44Z
- now validating all headers of a given name, not just the first,
when provided on the request/response as separate lines
- multiple headers of the same name can be validated as an array or
object as per deserialization rules in the OpenAPI v3.1
specification.
0.047 2023-09-19 04:29:16Z
- strings are now treated as numbers without requiring the "type"
keyword, and only from parameters, not message bodies, and only
when no media type is provided
- new "recursive_get" method on
JSON::Schema::Modern::Document::OpenAPI for fetching a
specification at a json pointer and following any $refs
(note this interface has changed in 0.049 and 0.050)
0.046 2023-06-24 21:56:39Z
- extra validation for Transfer-Encoding response header
0.045 2023-06-06 04:15:18Z
- fix test for changes in JSON::Schema::Modern 0.567
- now ensuring that $ref locations are to the correct entity type
0.044 2023-05-23 02:08:54Z
- revert changes to YAML parsing in 0.043, pending fixes to YAML::XS
0.043 2023-05-11 04:36:24Z
- properly detect, and fail early, on badly-parsed request or
response objects
0.042 2023-04-08 21:22:13Z
- improvements to some errors resulting from parsing an invalid
OpenAPI document
0.041 2023-03-13 02:47:59Z
- now detecting and erroring on two /paths with the same template
semantics
- handle new callback behaviour in JSON::Schema::Modern 0.565
0.040 2023-02-18 23:43:50Z
- all request and response validation are now done with
Mojo::Message::Request and ::Response objects, converting from
HTTP::Request and HTTP::Response as needed; the $options hash is
now populated with the mojo request
0.039 2023-02-11 23:23:17Z
- BREAKING CHANGE: find_path now takes one argument, not two; the
$request object is now passed with the $options hash.
- the $options hash populated by validate_request, validate_response
and find_path now includes the request object, when available
0.038 2023-01-15 18:51:02Z
- fix vocabulary tests with TJSA 1.018
- fix test for compatibility with JSM 0.561
0.037 2022-11-27 23:57:29Z
- added operation_path to the options hash returned from find_path,
validate_request, validate_response
0.036 2022-11-19 22:30:06Z
- fix some media-type test cases to accomodate changes in
JSON::Schema::Modern 0.558
0.035 2022-11-12 20:53:54Z
- fixes to media-type parsing: correctly ignore any charset included
with non-text Content-Types, and always interpret application/json
as charset=utf-8 as per RFC8259 ยง11
0.034 2022-10-15 20:15:34Z
- removed validation of readOnly properties in request bodies and
writeOnly values in response bodies
- bundled OAS v3.1 schemas have been updated to the 2022-10-07
edition
0.033 2022-09-18 23:10:04Z
- bump dependency on JSON::Schema::Modern, to pick up changes to
error output when an openapi document is invalid
0.032 2022-08-13 23:17:31Z
- error when a uri path specification contains duplicate capture
names
0.031 2022-06-01 03:59:14Z
- fix error when request or response body schema is empty (since
v0.028)
- use a custom error message with false schemas (to indicate the
entire entity is forbidden)
0.030 2022-05-26 05:17:26Z
- prohibit request bodies for HEAD and GET request unless
requestBody explicitly specified, as this is a smuggling vector
0.029 2022-05-16 04:20:20Z
- fix missing prereq for result serialization tests
0.028 2022-05-14 21:11:50Z
- now only checking for readOnly values in request bodies and
writeOnly values in response bodies (not path
parameters/headers/query parameters).
0.027 2022-05-01 01:41:48Z
- permit the use of unevaluatedProperties, unevaluatedItems in
openapi subschemas, and collect annotations into the evaluation
result
- now checking for readOnly values in requests and writeOnly values
in responses
0.026 2022-04-23 16:48:26Z
- fix installation of sharedir files when fallback installers
(ExtUtils::MakeMaker or Module::Build) are used
0.025 2022-04-03 19:58:27Z
- find_path no longer returns an undef operation_id when there is
no operationId defined in the schema document
0.024 2022-03-25 23:41:04Z
- operation_id and method are now always returned in the options
hash in validate_request, validate_response, find_path
0.023 2022-03-12 00:25:21Z
- get_operationId has been renamed to get_operationId_path
- updated bundled schemas from 2021-09-28 versions to 2022-02-27
0.022 2022-02-16 06:00:37Z
- construction with an invalid document is handled more nicely
- added new dialect schema share/strict-schema.json to the list of
available schemas, which prohibits unrecognized keywords
- added custom LICENSE to schema files copied from
github.com/OAI/OpenAPI-Specification
- distribution is renamed from JSON-Schema-Modern-Document-OpenAPI
to OpenAPI-Modern
0.021 2022-02-11 04:44:05Z
- absolute locations in errors are now resolved against the
request's Host header
0.020 2022-02-10 02:56:46Z
- validation methods and find_path now also accept the HTTP request
method as an option
- the request object is no longer required as an argument to
find_path
- validate_request, validate_response now also support Mojolicious
request and response objects
0.019 2022-01-23 08:17:30Z
- some instanceLocations in errors from validate_request and
validate_response have changed to be more specific regarding the
source of the error
- find_path is now a public method of OpenAPI::Modern, factored out
of validate_request and validate_response to enable third-party
callers to reuse information between these two method calls
0.018 2022-01-17 23:37:05Z
- fix parsing of escaped characters in URI paths and capture values
0.017 2022-01-17 18:33:07Z
- remove erroneous logic when checking the "discriminator" keyword
- user-provided path_template, path_captures and operation_id are
all verified against the request URI
- path_template, operation_id and path_captures are no longer
required arguments for validate_request, validate_response
0.016 2022-01-06 04:22:20Z
- fix the prereq specification for YAML::PP
0.015 2021-12-31 21:17:11Z
- load Math::BigInt before attempting to use it
0.014 2021-12-30 05:38:03Z
- use bignums in JSON::Schema::Modern to properly support int32,
int64 numeric formats
0.013 2021-12-22 19:23:30Z
- support */* as a media-type in a content specification, to
indicate valiation checks that can be performed on any content
type (e.g. length)
- add support for OAS-specific formats: int32, int64, float, double,
password
0.012 2021-12-17 06:39:38Z
- properly handle a missing Content-Length header alongside a
non-zero-length body payload
0.011 2021-12-16 06:17:57Z
- spurious validation errors fixed when request body is empty,
yet not required
0.010 2021-12-11 23:11:43Z
- OpenAPI metaschemas are now also available via URIs ending in
.../latest
- improved error messaging when a media-type or charset decoder fails
- improved handling of HTTP headers
0.009 2021-12-06 05:55:01Z
- validation no longer errors on a missing media type if the
corresponding schema is empty (true)
- validate_request and validate_response now accept an operation_id
instead of a path_template for looking up the endpoint
specification in the openapi document
- treat Content-Type headers and media-type entries in openapi
documents case-insensitively, and also match wildcards
(image/jpg falls back to image/* or */*)
0.008 2021-12-03 05:33:29Z
- process response headers in canonical order
0.007 2021-12-02 05:43:34Z
- properly handle missing message bodies, with possibly a mising
Content-Type header as well
- better type handling for numeric strings and stringy numbers
- detect and handle infinite recursion while evaluating
0.006 2021-12-01 05:22:01Z
- support media type encodings in parameters
0.005 2021-11-30 06:22:10Z
- performance improvements when loading and parsing documents
- extract and cache all operationIds in the document
0.004 2021-11-28 22:09:01Z
- implemented validate_response()
- when validating requests and responses, values that look like
numbers, and are evaluated as numbers in schemas, are now coerced
to numbers automatically
0.003 2021-11-26 01:01:47Z
- OpenAPI::Modern is born
0.002 2021-11-17 05:49:29Z
- minimum Perl version raised to 5.20
- embedded schemas are now traversed for resource URIs
0.001 2021-11-10 04:50:17Z
- Initial release.