OpenAPI Type


Keywords
typing, json, yaml, openapi, oas, swagger, schema, serialization, deserialization, structured-data, colander, mypy, oas3, openapi3, parser, specification
License
MIT
Install
pip install openapi-type==0.2.0

Documentation

https://github.com/avanov/openapi-type/workflows/CI/badge.svg?branch=develop https://coveralls.io/repos/github/avanov/openapi-type/badge.svg?branch=develop Requirements Status Documentation Status Latest PyPI Release

OpenAPI Type

OpenAPI specification represented as a Python type. Use it to parse specifications written in JSON and YAML formats.

pip install openapi-type
from openapi_type import OpenAPI, parse_spec, serialize_spec


spec: OpenAPI = parse_spec({
    "your OpenAPI Spec as Python dictionary": "will be parsed into a proper Python type"
})
assert parse_spec(serialize_spec(spec)) == spec
$ curl -s https://petstore3.swagger.io/api/v3/openapi.json | openapi-type check
Successfully parsed.

Codegen

If you are looking for a complete client code generator, consider openapi-client-generator that uses this library under the hood.

Cloning this repo

The proper way to clone this repo is:

git clone --recurse-submodules <repo-url> <local-project-root>
cd <local-project-root>

# for showing submodule status with `git status`
git config status.submodulesummary 1

# for logging submodule diff with `git diff`
git config diff.submodule log

Documentation

Documentation is hosted on ReadTheDocs: https://openapi-type.readthedocs.io/en/develop/

Test framework

The project uses Nix for bootstrapping its dev environment.

You can run existing test suite with

nix-shell --run "make test"

Changelog

See CHANGELOG.