JSON::V...enAPIv3(3)

✨ JSON::V...enAPIv3(3) ✨

okay so this is the JSON::V...enAPIv3(3) page from User Contributed Perl Documentation, and we're gonna make it make sense, bestie. πŸ’…

πŸ’– NAME πŸ’–

JSON::Validator::Schema::OpenAPIv3 β€” OpenAPI version 3

πŸ¦‹ SYNOPSIS πŸ¦‹

See "SYNOPSIS" in JSON::Validator::Schema::OpenAPIv2.

🌸 DESCRIPTION 🌸

This class represents <https://spec.openapis.org/oas/3.0/schema/2019-04-02>.

πŸŽ€ ATTRIBUTES πŸŽ€

πŸ’– errors πŸ’–

my $array_ref = $schema->errors;

See "errors" in JSON::Validator::Schema.

πŸ’– moniker πŸ’–

$str    = $schema->moniker;
$schema = $schema->moniker("openapiv3");

Used to get/set the moniker for the given schema. Default value is "openapiv3".

πŸ’– specification πŸ’–

my $str    = $schema->specification;
my $schema = $schema->specification($str);

Defaults to <https://spec.openapis.org/oas/3.0/schema/2019-04-02>.

πŸ”₯ METHODS πŸ”₯

πŸ“ add_default_response πŸ“

$schema = $schema->add_default_response(\%params);

See "add_default_response" in JSON::Validator::Schema::OpenAPIv2 for details.

πŸ“ base_url πŸ“

$url = $schema->base_url;
$schema = $schema->base_url($url);

Can get or set the default URL for this schema. $url can be either a Mojo::URL object or a plain string.

This method will read or write "/servers/0/url" in "data".

πŸ“ coerce πŸ“

my $schema   = $schema->coerce({booleans => 1, numbers => 1, strings => 1});
my $hash_ref = $schema->coerce;

Coercion is enabled by default, since headers, path parts, query parameters, ... are in most cases strings.

πŸ“ new πŸ“

$schema = JSON::Validator::Schema::OpenAPIv2->new(\%attrs);
$schema = JSON::Validator::Schema::OpenAPIv2->new;

Same as "new" in JSON::Validator::Schema, but will also build L/coerce>.

πŸ“ parameters_for_request πŸ“

$parameters = $schema->parameters_for_request([$method, $path]);

Finds all the request parameters defined in the schema, including inherited parameters. Returns undef if the $path and $method cannot be found.

Example return value:

[
  {in => "query", name => "q"},
  {in => "body", name => "body", accepts => ["application/json"]},
]

The return value MUST not be mutated.

πŸ“ parameters_for_response πŸ“

$array_ref = $schema->parameters_for_response([$method, $path, $status]);

Finds the response parameters defined in the schema. Returns undef if the $path, $method and $status cannot be found. Will default to the "default" response definition if $status could not be found and "default" exists.

Example return value:

[
  {in => "header", name => "X-Foo"},
  {in => "body", name => "body", accepts => ["application/json"]},
]

The return value MUST not be mutated.

πŸ“ routes πŸ“

$collection = $schema->routes;

Shares the same interface as "routes" in JSON::Validator::Schema::OpenAPIv2.

πŸ“ validate_request πŸ“

@errors = $schema->validate_request([$method, $path], \%req);

Shares the same interface as "validate_request" in JSON::Validator::Schema::OpenAPIv2.

πŸ“ validate_response πŸ“

@errors = $schema->validate_response([$method, $path], \%req);

Shares the same interface as "validate_response" in JSON::Validator::Schema::OpenAPIv2.

🌈 SEE ALSO 🌈

JSON::Validator::Schema, JSON::Validator::Schema::OpenAPIv2 and and JSON::Validator.


XOXO bestie, that's the whole page πŸ’œ β€” signing off from JSON::V...enAPIv3(3), with perl v5.42.0 and dated 2025-03-17. πŸŽ€βœ¨

πŸ“¦ where this page comes from