Metadata-Version: 2.1
Name: openapi3-parser
Version: 0.0.3
Summary: OpenAPI v3 parser
Home-page: https://github.com/manchenkoff/openapi3-parser
Author: Artyom Manchenkov
Author-email: artyom@manchenkoff.me
License: MIT
Project-URL: Source, https://github.com/manchenkoff/openapi3-parser
Keywords: swagger,python,version-parser,parser,version,openapi3,swagger-api
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
Requires-Dist: prance
Requires-Dist: openapi-spec-validator

# OpenAPI Parser

A simple package to parse your OpenAPI 3 documents into Python object to work with.

## How to install

To install package run the following command

```
pip install openapi3-parser
```

## How to use

Example of parser usage

```
>>> from openapi_parser import parse
>>> content = parse('swagger.yml')
>>> print(content)
```

## Supported specification schemas
- [x] Contact
- [x] License
- [x] Info
- [x] Server
- [x] ExternalDoc
- [x] Tag
- [x] Schema
- [x] Integer schema
- [x] Number schema
- [x] String schema
- [x] Array schema
- [x] Object schema
- [x] Property
- [x] Parameter
- [x] Header
- [x] Content
- [x] RequestBody
- [x] Response
- [X] Operation
- [x] PathItem
- [x] Path
- [x] Security
- [x] OAuthFlow
- [x] Specification

## Features

- [x] OpenAPI's validation with `openapi-spec-validator`
- [x] Parsing all the sections into Python `dataclass`
- [x] Support many `Enum` values to simplify work with `format`, `type`, etc
- [x] Auto-resolve `$ref` links with [Prance](https://pypi.org/project/prance)
- [x] Support custom `x-*` [attributes](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#specificationExtensions)
- [x] Support automatic merge `allOf` schemas into one while resolving
- [ ] Support `oneOf` schemas
- [ ] Support `anyOf` schemas
- [ ] Support `not` schemas
- [ ] Support `Parameter` [serialization style](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#fixed-fields-10)
- [ ] Support `discriminator` model types
- [ ] Support additional properties in dataclasses (like `example`, `style`, `explode`, etc). See TODOs in code
- [ ] Functions and methods documentation

