Converts a JSON schema to an OpenAPI specification version 3.0.
Project description
jsonschema-to-openapi
Converts a JSON schema to an OpenAPI specification version 3.0.
Installation
pip install jsonschema-to-openapi
Usage
CLI
jsonschema-to-openapi my_json_schema.json my_open_api_spec.json
Package
>>> from jsonschema_to_openapi.convert import convert
>>> schema = {} # Your json schema as dictionary.
>>> convert(schema)
{} # Your OpenAPI specification as dictionary.
Caveats and Limitations
- If you have a complex schema, where you extend a base schema with the
$ref
operator, you will need to put all base schemas under a "definitions" key in root. - Abitrarily nested
xOf
s cannot be resolved yet. The program won't fail and will procude valid OpenAPI specification, but the result will still contain nestedxOf
operators.-
Input:
{ "anyOf": [{"$ref": "#/definitions/my_object"}, { "anyOf": [{"type": "null"}] }], "definitions": { "my_object": {"type": "string"} } }
-
Output:
{ "anyOf": [ { "$ref": "#/definitions/my_object" }, { "anyOf": [ { "type": "null" } ] } ], "definitions": { "my_object": { "nullable": false, "type": "string" } } }
-
Changelog
Please take a look at the CHANGELOG.md for notable changes to jsonschema-to-openapi.
License
See the LICENSE for details.
Development
We welcome new contributions to this project!
Source Code
You can check the latest source code with the command:
git clone git@gitlab.com:InstaffoOpenSource/DataScience/jsonschema-to-openapi.git
Linting
After cloning and installing the dependencies, you can lint the project by executing:
make lint
Testing
After cloning and installing the dependencies, you can test the project by executing:
make test
Help and Support
Authors
- Jan-Benedikt Jagusch jan@instaffo.de
Acknowledgements
- This project started as a Python port of json-schema-to-openapi-schema.
Project details
Release history Release notifications | RSS feed
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 jsonschema-to-openapi-0.2.1.tar.gz
.
File metadata
- Download URL: jsonschema-to-openapi-0.2.1.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.2 CPython/3.6.9 Linux/5.3.0-45-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bccbe72c8d4c0d76ff006309895afbb9b87bf67b7663fba4b5ab055f5253de5 |
|
MD5 | 5106c33834a56d0c4938ee79387e61c6 |
|
BLAKE2b-256 | 434c9808f3fbfa24b9d0337afb8f388db3b53de10ed593b89c460e76f3c86aa4 |
File details
Details for the file jsonschema_to_openapi-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: jsonschema_to_openapi-0.2.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.2 CPython/3.6.9 Linux/5.3.0-45-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cac1b26f5625f33add3dfba113d950ec22b34381b060561f8412bf4f6a409c6 |
|
MD5 | 388b3d38c3cec76dad941bda92411bec |
|
BLAKE2b-256 | e4cb1a7e6efa903b3fcdd41222579927b49209473bb22175b8432563cf6aedf6 |