Skip to main content

Extended tools for openapi spec

Project description

openapi-ext-tools

extended tools for openapi spec

bundle multiple yaml files into single openapi.yaml

$ openapi-spec-cli --help
usage: openapi-spec-cli [-h] --spec-path SPEC_PATH
                        [--bundled-spec-path BUNDLED_SPEC_PATH] [--verbose]

optional arguments:
  -h, --help            show this help message and exit
  --spec-path SPEC_PATH
                        set path to openapi spec file
  --bundled-spec-path BUNDLED_SPEC_PATH
                        set path to bundled spec file
  --verbose             set verbose mode

How to use

Currently, bundling only support components object.

The tests/fixtures/simple/openapi.yaml is openapi specification file and a part of schemas is defined in tests/fixtures/simple/schemas.yaml.

...
    content:
      application/json:
        schema:
          $ref: 'schemas.yaml#/components/schemas/User'
...

For example, User schema is defined like this.

components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: integer
          format: int64
        username:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        birthday:
          type: string
          format: date
        email:
          type: string
        password:
          type: string
        phone:
          type: string
        userStatus:
          type: integer
          description: User Status
          format: int32

Run openapi-spec-cli to bundle yaml files and create single openapi.yaml.

$ openapi-spec-cli --spec-path tests/fixtures/simple/openapi.yaml
2019-05-11 11:56:12,337 openapi.spec.ext INFO wrote bundled spec file to "bundled_openapi.yaml"
2019-05-11 11:56:12,402 openapi.spec.ext INFO validating bundled spec: OK

You can confirm bundled_openapi.yaml in current directory. Then, all schemas in schemas.yaml are moved to bundled_openapi.yaml and a $ref field also reffers as Local Reference.

...
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/User'
...

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

openapi-ext-tools-0.5.0.tar.gz (11.3 kB view hashes)

Uploaded source

Built Distribution

openapi_ext_tools-0.5.0-py3-none-any.whl (11.4 kB view hashes)

Uploaded py3

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