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 hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page