Skip to content
This repository was archived by the owner on Mar 16, 2025. It is now read-only.

validate openapi.yaml #77

Closed
hauner opened this issue Aug 17, 2021 · 2 comments
Closed

validate openapi.yaml #77

hauner opened this issue Aug 17, 2021 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@hauner
Copy link
Member

hauner commented Aug 17, 2021

find errors in the openapi.yaml before the processor fails by validating the openapi.yaml with the json schema.

This is easy for a single file openapi.yml files.

Using jackson and json-schema-validator it basically works like this:

    val mapper = ObjectMapper(YAMLFactory())
    val tree = mapper.readTree(apiURL)
    // setup validator to use json schema in yaml format
    val factory = JsonSchemaFactory.Builder()
        .objectMapper(mapper)
        .defaultMetaSchemaURI(JsonMetaSchema.getV4().uri)
        .addMetaSchema(JsonMetaSchema.getV4())
        .build()

    val schema30 = URI("https://github.com/raw/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.yaml")
    val schema = factory.getSchema(schema30)
    val validation = schema.validate(tree)

Unfortunately it doesn't work with an openapi.yaml that $refs into other files. To validate it, all $refd files need to be merged into the openapi.yaml file.

I didn't find any easily usable java code to do this :-(

What it should do:

  • add the file content to components:
    • in a nested x-key
    • in a nested file name based key so it is possible to know where the definitions com from
    • replace $ref to other file with $ref to `components/x-key/file-name#/type

Experimental code seems to work on simple $refs.

@hauner
Copy link
Member Author

hauner commented Aug 22, 2021

validating of single files with $refs does not work. It does not report errors

  • if there is an error in the referenced definition
  • if the $ref points to a non-existing definition

The validator seems to ignore $refs.

@hauner hauner removed this from the next milestone Aug 28, 2021
@hauner
Copy link
Member Author

hauner commented Jun 1, 2022

internal openapi-processor/openapi-parser supports json schema validation with $refs.

@hauner hauner closed this as completed Jun 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant