Skip to main content

A Parser from OpenAPI to Hydra specs

Project description

hydra-openapi-parser

This library contains the OpenAPI parser implemntaion in Python to be used with hydrus and hydra-python-agent.

Currently the library consists of openapi_parser module which helps hydrus parse OpenAPI standard docs.

To install the library:

pip install git+https://github.com/HTTP-APIs/hydra-openapi-parser.git#egg=hydra_openapi_parser

Note :- If using hydrus, the library doesn't need to be installed separately as it is already a part of requirements.txt for hydrus. Usage

To import the modules:

from hydra_openapi_parser import openapi_parser

Porting out from hydrus the hydraspecs directory

Sample use-cases of openapi_parser module

Once the OpenAPI YAML document is assigned into the variable doc as a Python dictionary, you can do the following:

  • Parse the OpenAPI doc into a HydraDoc
parsed_dict = openapi_parser.parse(doc)
  • Generate an empty object
object = openapi_parser.generate_empty_object()
  • Test if an endpoint is valid
path = 'A/B/{id}/C/D'
openapi_parser.valid_endpoint(path)
# False
path = 'A/B/{id}'
openapi_parser.valid_endpoint(path)
# Collection
path = 'A/B/C'
openapi_parser.valid_endpoint(path)
# True
  • Extract class name from the path
path = "A/B/C/Pet"
path_list = path.split('/')
openapi_parser.get_class_name(path_list)
# Pet
  • Fetch data from location
path = '#/definitions/Order'
path_list = path.split('/')
data = openapi_parser.get_data_at_location(path_list, doc)
# data is of type dict
  • Remove variables from path
path = "A/B/C/{id}"
output = openapi_parser.sanitise_path(path)
  • Identify if an object is a collection
schema_block = {
    'type': 'array',
    'items': {
        '$ref': '#/definitions/Pet'
    }
}
method = "/Pet"
openapi_parser.check_collection(schema_block, method)
# True

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

hydra_openapi_parser-0.2.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

hydra_openapi_parser-0.2.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file hydra_openapi_parser-0.2.0.tar.gz.

File metadata

  • Download URL: hydra_openapi_parser-0.2.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.9

File hashes

Hashes for hydra_openapi_parser-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7fd1ca6892ec014f3285bd7a19de03bb94c9d4fee49e3815c2714ac133b70468
MD5 64c0845d294ed9218c945dfde3268b80
BLAKE2b-256 f3f9bea8a3130f6a9bacb71144d1f0a55e3de0194633caf88e843c3660b4a1a9

See more details on using hashes here.

File details

Details for the file hydra_openapi_parser-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hydra_openapi_parser-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.9

File hashes

Hashes for hydra_openapi_parser-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef23190c3022a6eab068b8e7695255b35b6b4ef8fffe948be2ee1460623a9e71
MD5 b9412d3254904cfe2bda722d9b9e1ad5
BLAKE2b-256 6b1fe3d571df353c29391af175297ed291a86787c2345a72bc18afad684ec7c0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page