A utility to extract JSON Schema from a valid OpenAPI specification
Project description
openapi2jsonschema2
A utility to extract JSON Schema from a valid OpenAPI specification.
Forked and updated from openapi2jsonschema. The original project does not appear to be maintained. All credit to the original authors.
Why
OpenAPI contains a list of type definitions
using a superset of JSON
Schema. These are used internally by various OpenAPI compatible tools. I
found myself however wanting to use those schemas separately, outside
existing OpenAPI tooling. Generating separate schemas for types defined
in OpenAPI allows for all sorts of indepent tooling to be build which
can be easily maintained, because the canonical definition is shared.
Installation
openapi2jsonschema2
is implemented in Python. Assuming you have a
Python intepreter and pip installed you should be able to install with:
pip install openapi2jsonschema2
This has not yet been widely tested and is currently in a works on my machine state.
Usage
The simplest usage is to point the openapi2jsonschema2
tool at a URL
containing a JSON (or YAML) OpenAPI definition like so:
openapi2jsonschema2 https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json
This will generate a set of schemas in a schemas
directory. The tool
provides a number of options to modify the output:
$ openapi2jsonschema2 --help
Usage: openapi2jsonschema2 [OPTIONS] SCHEMA
Converts a valid OpenAPI specification into a set of JSON Schema files
Options:
-o, --output PATH Directory to store schema files
-p, --prefix TEXT Prefix for JSON references (only for OpenAPI versions
before 3.0)
--stand-alone Whether or not to de-reference JSON schemas
--kubernetes Enable Kubernetes specific processors
--strict Prohibits properties not in the schema
(additionalProperties: false)
--help Show this message and exit.
Example
My specific use-case was being able to validate a Kubernetes
configuration file without a Kubernetes client like kubectl
and
without the server. For that I have a bash script,
available here.
The output from running this script can be seen in the accompanying instrumenta/kubernetes-json-schema.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file openapi2jsonschema2-1.1.3.tar.gz
.
File metadata
- Download URL: openapi2jsonschema2-1.1.3.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/5.15.0-1073-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de2bbb97d412aa9fd471985b76f7211c978d6a4601078bec2e30170d006f9d7a |
|
MD5 | 5e7d5208320188e962d69382909323f2 |
|
BLAKE2b-256 | 765af049940ba1889e7fef3105153f1b26c3397b62f8d9b6266823096fd2a0e9 |
File details
Details for the file openapi2jsonschema2-1.1.3-py3-none-any.whl
.
File metadata
- Download URL: openapi2jsonschema2-1.1.3-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Linux/5.15.0-1073-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25e309fe77109fa33558643d4d21a03edb1bd24bd8d5154a9009e2e8d88a9b9a |
|
MD5 | 07dba22139de1db9c9470d86c2430d87 |
|
BLAKE2b-256 | f518c909487410aa7e60ab2d590c8d3b29aef7e58270cfc4e2f77cfb33cd38ff |