Skip to content

jrtcppv/openapi-core

Repository files navigation

openapi-core

https://travis-ci.org/p1c2u/openapi-core.svg?branch=masterhttps://img.shields.io/codecov/c/github/p1c2u/openapi-core/master.svg?style=flat

About

Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI Specification v3.

Key features

  • Validation of requests and responses
  • Schema casting and unmarshalling
  • Media type and parameters deserialization
  • Security providers (API keys, Cookie, Basic and Bearer HTTP authentications)
  • Custom deserializers and formats
  • Integration with libraries and frameworks

Documentation

Check documentation to see more details about the features. All documentation is in the "docs" directory and online at openapi-core.readthedocs.io

Installation

Recommended way (via pip):

$ pip install openapi-core 

Alternatively you can download the code and install from the repository:

$ pip install -e git+https://github.com/p1c2u/openapi-core.git#egg=openapi_core

Usage

Firstly create your specification:

fromopenapi_coreimportcreate_specspec=create_spec(spec_dict)

Request

Now you can use it to validate requests

fromopenapi_core.validation.request.validatorsimportRequestValidatorvalidator=RequestValidator(spec) result=validator.validate(request) # raise errors if request invalidresult.raise_for_errors() # get list of errorserrors=result.errors

and unmarshal request data from validation result

# get parameters object with path, query, cookies and headers parametersvalidated_params=result.parameters# or specific parametersvalidated_path_params=result.parameters.path# get bodyvalidated_body=result.body# get security datavalidated_security=result.security

Request object should be instance of OpenAPIRequest class (See Integrations).

Response

You can also validate responses

fromopenapi_core.validation.response.validatorsimportResponseValidatorvalidator=ResponseValidator(spec) result=validator.validate(request, response) # raise errors if response invalidresult.raise_for_errors() # get list of errorserrors=result.errors

and unmarshal response data from validation result

# get headersvalidated_headers=result.headers# get datavalidated_data=result.data

Response object should be instance of OpenAPIResponse class (See Integrations).

Related projects

About

OpenAPI core

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python99.8%
  • Makefile0.2%