Skip to main content

Add response descriptions to chalice

Project description

PyPI PyPI - Python Version GitHub https://travis-ci.org/jsfehler/leangle.svg?branch=master https://coveralls.io/repos/github/jsfehler/leangle/badge.svg?branch=master

An add-on for chalice to improve documentation of an API Gateway.

As of version 1.13.0, chalice does not support models for the request or response. This means any documentation generated for an API Gateway is going to be much less useful.

leangle improves this with a collection of decorators for chalice route functions, and built-in support for marshmallow schemas.

Installation

Via pip:

pip install leangle

Chalice itself is an optional dependency. This can be useful for testing and validation, but should not be used for the version of chalice deployed to AWS.

pip install leangle[chalice]

Describe API Parameters

API Responses can be described with the describe.parameter decorator. They will be added as documentation to the API Gateway. They should go after the route decorator, and can be stacked.

import leangle


@app.route('/', methods=['POST'])
@leangle.describe.parameter(name='body', _in='body', description='Create a new widget', schema='WidgetSchema')
def index():
    return Response(status_code=201)

Describing the ‘in’ field of a parameter

_in is used, as in is a reserved word in Python.

Describe API Responses

API Responses can be described with the describe.response decorator. They will be added as documentation to the API Gateway. They should go after the route decorator, and can be stacked.

import leangle


@app.route('/', methods=['POST'])
@leangle.describe.response(201, description='Created')
@leangle.describe.response(422, description='Missing Parameter')
def index():
    return Response(status_code=201)

Describe Method Tags

import leangle


@app.route('/', methods=['POST'])
@leangle.describe.tags(["x-large"])
def index():
    return Response(status_code=201)

Add schemas

Schema objects can be defined using marshmallow

When decorated with the add_schema decorator, they will be added as models to the API Gateway.

The name of these Schema classes can be used in the describe decorators.

import leangle
from marshmallow import Schema, fields


@leangle.add_schema()
class BaseSchema(Schema):
    name = fields.Str()


@app.route('/', methods=['POST'])
@leangle.describe.response(201, description='Created', schema='BaseSchema')
def index():
    return Response(status_code=201)

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

leangle-0.2.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

leangle-0.2.2-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file leangle-0.2.2.tar.gz.

File metadata

  • Download URL: leangle-0.2.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.1

File hashes

Hashes for leangle-0.2.2.tar.gz
Algorithm Hash digest
SHA256 daad9b3c44aea464353f5bc96465dab58ea42bbe6e813cf3ba5aff457a0cf806
MD5 fefcc4cd9bbc76658a2a9e4b5917cbaa
BLAKE2b-256 3519bf5bbf619b1eae5d5001c67bf5253e7aca4141957667e4b752a8ff0ab8a4

See more details on using hashes here.

File details

Details for the file leangle-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: leangle-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.1

File hashes

Hashes for leangle-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e0de883943937389051a3c905a729bd3c4b0f7350b4fd06a0901301ada704dcc
MD5 2fcbcc660a4903ce235be1063443385a
BLAKE2b-256 6d67b604176a9b408b294d2a0ae784b92b52d7ee7f266ee0a68d272d21340f1e

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