swagger-ui-bundle 1.1.0


pip install swagger-ui-bundle

  Latest version

Released: Nov 01, 2023


Meta
Author: Daniel Grossmann-Kavanagh
Maintainer: Robbe Sneyders
Requires Python: >=3.7

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers

License
  • OSI Approved :: Apache Software License

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 3
  • Python :: 3.7
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3 :: Only

Topic
  • Internet
  • Internet :: WWW/HTTP
  • Internet :: WWW/HTTP :: HTTP Servers
  • Software Development
  • Software Development :: Libraries
  • Software Development :: Libraries :: Python Modules

Typing
  • Typed

swagger_ui_bundle

This package contains the static files for swagger-ui as a python package.

Basic configuration options are templated with the Jinja2 templating language.

This package is intended to be webserver-agnostic, so it only includes the static files, and some very basic configuration.

Getting Started

You can import the swagger_ui_path from the swagger_ui_bundle package like so:

from swagger_ui_bundle import swagger_ui_path

You can easily serve up this directory as all static files to get the default swagger-ui distribution. Here’s an example in flask:

from swagger_ui_bundle import swagger_ui_path

from flask import Flask, Blueprint, send_from_directory, render_template

swagger_bp = Blueprint(
    'swagger_ui',
    __name__,
    static_url_path='',
    static_folder=swagger_ui_path,
    template_folder=swagger_ui_path
)

app = Flask(__name__, static_url_path='')
app.register_blueprint(swagger_bp, url_prefix='/ui')

if __name__ == "__main__":
    app.run()

You may wish to override some of the configuration variables. Included is a jinaj2 templated file where you can modify these parameters. You can add another route to render this template with your desired configuration like so:

SWAGGER_UI_CONFIG = {
    "openapi_spec_url": "https://petstore.swagger.io/v2/swagger.json"
}

@swagger_bp.route('/')
def swagger_ui_index():
    return render_template('index.j2', **SWAGGER_UI_CONFIG)

Have a look at example.py for a complete server for the Flask webserver.

License

Since this is just repackaging swagger-ui releases, the license comes from the swagger ui project (https://github.com/swagger-api/swagger-ui).

All vendored code is published under the Apache 2.0 License.

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras: None
Dependencies:
Jinja2 (<4.0.0,>=3.0.0)
importlib_resources (<6.0.0,>=5.7.1)