Skip to main content

Library for accessing Swagger-enabled API's

Project description

https://img.shields.io/travis/Yelp/bravado.svg https://img.shields.io/coveralls/Yelp/bravado.svg PyPi version Supported Python versions

Bravado

About

Bravado is a Yelp maintained fork of digium/swagger-py for use with OpenAPI Specification version 2.0 (previously known as Swagger).

From the OpenAPI Specification project:

The goal of The OpenAPI Specification is to define a standard, language-agnostic interface to REST APIs which allows both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection.

Client libraries can automatically be generated from the OpenAPI specification, however Bravado aims to be a complete replacement for code generation (swagger-codegen).

Example Usage

from bravado.client import SwaggerClient
client = SwaggerClient.from_url('http://petstore.swagger.io/v2/swagger.json')
pet = client.pet.getPetById(petId=42).response().result

Example with Basic Authentication

from bravado.requests_client import RequestsClient
from bravado.client import SwaggerClient

http_client = RequestsClient()
http_client.set_basic_auth(
    'api.yourhost.com',
    'username', 'password'
)
client = SwaggerClient.from_url(
    'http://petstore.swagger.io/v2/swagger.json',
    http_client=http_client,
)
pet = client.pet.getPetById(petId=42).response().result

Example with Header Authentication

from bravado.requests_client import RequestsClient
from bravado.client import SwaggerClient

http_client = RequestsClient()
http_client.set_api_key(
    'api.yourhost.com', 'token',
    param_name='api_key', param_in='header'
)
client = SwaggerClient.from_url(
    'http://petstore.swagger.io/v2/swagger.json',
    http_client=http_client,
)
pet = client.pet.getPetById(petId=42).response().result

Example with Fido Client (Async Http Client)

# Install bravado with fido extra (``pip install bravado[fido]``)
from bravado.fido_client import FidoClient
from bravado.client import SwaggerClient

http_client = FidoClient()
client = SwaggerClient.from_url(
    'http://petstore.swagger.io/v2/swagger.json',
    http_client=http_client,
)
pet = client.pet.getPetById(petId=42).response().result

Documentation

More documentation is available at http://bravado.readthedocs.org

Installation

# To install bravado with Synchronous Http Client only.
$ pip install bravado

# To install bravado with Synchronous and Asynchronous Http Client (RequestsClient and FidoClient).
$ pip install bravado[fido]

Development

Code is documented using Sphinx.

virtualenv. is recommended to keep dependencies and libraries isolated.

Setup

# Run tests
tox

# Install git pre-commit hooks
tox -e pre-commit install

Contributing

  1. Fork it ( http://github.com/Yelp/bravado/fork )

  2. Create your feature branch (git checkout -b my-new-feature)

  3. Add your modifications

  4. Add short summary of your modifications on CHANGELOG-MASTER.rst

  5. Commit your changes (git commit -m "Add some feature")

  6. Push to the branch (git push origin my-new-feature)

  7. Create new Pull Request

License

Copyright (c) 2013, Digium, Inc. All rights reserved. Copyright (c) 2014-2015, Yelp, Inc. All rights reserved.

Bravado is licensed with a BSD 3-Clause License.

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

bravado-10.4.0.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

bravado-10.4.0-py2.py3-none-any.whl (34.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bravado-10.4.0.tar.gz.

File metadata

  • Download URL: bravado-10.4.0.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

File hashes

Hashes for bravado-10.4.0.tar.gz
Algorithm Hash digest
SHA256 19148e9098c814c9b758232b45c5dd2411b192fb3ea207e3ff571cbf4510f10c
MD5 600e7b89a844bbd7fa6b203423cce157
BLAKE2b-256 0f9f08952c829d341ab91e134989a6babfd98ae6ea7cf6d95858192390edf61d

See more details on using hashes here.

File details

Details for the file bravado-10.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: bravado-10.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.16

File hashes

Hashes for bravado-10.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b20a04aa6bfb8cc7df9fbec00e72662bcc7fb07c89cb14477061b590844b362b
MD5 facdd04c90d301d614d2c0cd3becce1e
BLAKE2b-256 47205c8a25275ed2246f922a766107e65d714807b37a2c8bfd89147d32a7f14b

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