This repository was archived by the owner on Mar 16, 2025. It is now read-only.
This repository was archived by the owner on Mar 16, 2025. It is now read-only.
validate openapi.yaml #77
Closed
Description
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 $ref
s into other files. To validate it, all $ref
d 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
- in a nested
Experimental code seems to work on simple $ref
s.