json-schema icon indicating copy to clipboard operation
json-schema copied to clipboard

Example of Openapi not valid

Open rejinka opened this issue 3 years ago • 2 comments

I tried to validate one of the examples provided in https://github.com/OAI/OpenAPI-Specification and it does not validate. The validation error doesn't seem correct to me:

Array
(
    [/webhooks/newPet/post/requestBody/content/application~1json/schema] => Array
        (
            [0] => The required properties (openapi) are missing
        )

)

Here is a small script to reproduce the error:

<?php
declare(strict_types = 1);

require_once __DIR__ . '/vendor/autoload.php';

use Opis\JsonSchema\Validator;
use Opis\JsonSchema\Errors\ErrorFormatter;

$schema = file_get_contents('https://spec.openapis.org/oas/3.1/schema/2021-09-28');
$data   = json_decode(
    file_get_contents(
        'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/f1adc846131b33be72df6a0c87e5e5da59dde0ff/examples/v3.1/webhook-example.json'
    )
);

$result = (new Validator())
    ->validate($data, $schema);

print_r((new ErrorFormatter())->format($result->error()));

rejinka avatar Jan 21 '22 15:01 rejinka

I have the same problem, was playing around with changing oas3.1 schema. Changed "schema": { "$dynamicRef": "#meta" } to "schema": { "$ref": "#/$defs/schema" } and the changed the definition to "schema": { "$ref": "https://json-schema.org/draft/2020-12/schema" }. After that there were some problem with conditional properties that have default: false, so I removed them and it works.

My use case: I have a lot of endpoints, parameters, servers which are compiled into one final OAS object JSON file which I would like to check against the OAS schema, including any sub (JSON) schemas for parameters, responses, because each bit is written manually and there might be some human mistakes.

gskema avatar May 09 '22 11:05 gskema

it sounds like your evaluator doesn't support the $dynamicRef keyword. Support for that isn't optional, as it's a core part of the specification -- so you might want to file a bug report for that.

karenetheridge avatar Apr 25 '23 20:04 karenetheridge