Socket
Socket
Sign inDemoInstall

swagger-bundler

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    swagger-bundler

swagger schema bundler


Maintainers
1

Readme

swagger-bundler

This is individual tool for bundling swagger definitions.

  • python3 only (python3.5+ is better)

setup

::

$ pip install "swagger-bundler[validation]"

or

::

$ pip install -e git+git@github.com:podhmo/swagger-bundler.git@master#egg=swagger_bundler

getting started

  1. generating your config file

  2. using it

  3. generating your config file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

swagger-bundler needs config file for using. so, at first, you must generate config file.

::

$ swagger-bundler config --init generate ~/venv/web/work/swagger-bundler.ini.

The stragegy of finding config file, following below.

Your current working directory is ~/venv/web/work/. then,

  1. finds ~/venv/web/work/swagger-bundler.ini
  2. finds ~/venv/web/swagger-bundler.ini
  3. finds ~/venv/swagger-bundler.ini
  4. finds ~/swagger-bundler.ini

Config file is not found, then, lookup ~/.swagger-bundle.ini.

  1. how to use ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block::

Usage: swagger-bundler [OPTIONS] COMMAND [ARGS]...

Options: --help Show this message and exit.

Commands: bundle bundles many source files into single file concat concatnates many swagger-definition files config show config validate validates via swagger-2.0 spec

Swagger-bundler has two commands.

  • bundle
  • concat

bundle


This is the main feature. bundling many source files into one single swagger-definition file.

::

   $ swagger-bundler bundle <file.yaml>

The target file of swagger-bundler, it can use three special-marker.

- x-bundler-namespace -- when bundling, using this value as prefix string.
- x-bundler-compose -- importing from other files with namespace
- x-bundler-concat -- importing from other files **without namespace**

For example. the structure of current working directory is such as below,

::

  .
  ├── main.yaml
  └── parts
      ├── common.yaml
      ├── x.yaml
      └── y.yaml


and the content of main.yaml is this.


.. code-block:: yaml

  x-bundler-namespace: ZZZ
  x-bundler-compose:
    - ./parts/x.yaml
    - ./parts/y.yaml
  x-bundler-concat:
    - ./parts/common.yaml

And run it.

.. code-block:: bash

 $ swagger-bundler bundle main.yaml

- definitions in x.yaml, y.yaml are renamed (with namespace). (e.g. foo -> ZZZFoo)
- definitions in common.yaml are not renamed. (e.g. bar -> bar)

The link of `example <example.rst>`_.


qualified import.

.. code-block:: yaml

  x-bundler-namespace: O
  x-bundler-compose:
    - ../parts/x-state.yaml as X
    - ../parts/y-state.yaml as Y

then

- state of x-state.yaml is converting XState, eventually, OXState
- state of y-state.yaml is converting YState, eventually, OYState

the link of `example(qualified import) <example2.rst>`_

concat

This is just concatnate files.

::

$ swagger-bundler concat [file1.yaml] [file2.yaml] ...

appendix:

  • hook configuration.
  • watch option is supported.

hook configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Hook configuration examples.

  • lifting sub definitions sample <example3.rst>_
  • tiny individual mixin sample <example4.rst>_
  • deref sample <example5.rst>_

watch option ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

::

installed with [watch]

$ pip install "swagger-bundler[watch]" $ swagger-bundler bundle --watch "*.yaml" --outfile="/tmp/output.yaml" src.yaml

0.1.10.4

  • fix deref implemetation

0.1.10.1

  • fix deref implemetation

0.1.10

  • adding load hook
  • (adding deref example)

0.1.9

  • fix titlize function is invalid that using lifting definition hook. (fooBar -> Foobar)

0.1.8

  • fix qualified import bug(since 0.1.7)

0.1.7

  • reviving context cache
  • fix ValueError when merging with None

0.1.6

  • fix bug (lifting definition on array)

0.1.5

  • adding postscript.lifting_definition(hook)

0.1.4

  • adding extra information, exposed_predicate, on prefixing(add_namespace) postscript hook

0.1.3

  • bug fix

0.1.2

  • adding orphan reference check

0.1.1

  • more hooks (add_namespace, validate)

0.1

  • postscript_hook

0.0.7

  • prefixing targets responses,definisions -> responses,definisions,parameters

0.0.6

  • fix case: ctx.data has 'responses' data (but value is None)
  • fix watching generated file

0.0.5

  • watch option is supported

0.0.4

  • gentle warning message on FileNotFoundError
  • bundle command with --namespace option
  • qualified import (e.g. x-bundler-compose with 'foo.yaml as F')

0.0.3

  • adding readme and examples
  • support json format(input/output)

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc