Skip to main content

Chalice x APISpec x Pydantic plug-ins

Project description

chalice-spec

Python package Code style: black

Chalice × APISpec × Pydantic plug-ins

Combines the power of Chalice, APISpec, and Pydantic to make AWS Chalice apps easily documented

Installation

First, add chalice-spec:

poetry add chalice_spec

We consider Chalice, APISpec, and Pydantic "peer dependencies." We only include them as dev dependencies in our codebase, and you may need to install them in yours if you haven't already.

poetry add chalice apispec pydantic

Setup

First, instantiate your APISpec object with both the Pydantic and Chalice plug-ins, assuming you need the functionality of each. While the Pydantic plugin can be used alone, you currently must use the Pydantic plugin with the Chalice plugin.

app = Chalice(app_name="hello_world")
spec = APISpec(chalice_app=app,
               ...,
               plugins=[PydanticPlugin(), ChalicePlugin()])

If you use:

ChalicePlugin(generate_default_docs=True)

the plugin will generate empty docs (with empty request and response schemas) for every endpoint that you've defined in your app. This can be useful as a starting point / overview while developing.

Usage

To document your API, use your existing Pydantic models and add kwargs to Chalice decorators.

Before:

@app.route('/', methods=["POST"])
def example():
    body = MySchema.parse_obj(app.current_request.json_body)

After:

@app.route('/', methods=["POST"], docs=Docs(
    post=Operation(request=MySchema)
))
def example():
    body = MySchema.parse_obj(app.current_request.json_body)

If you have multiple methods supported, you may have something like:

@app.route('/', methods=["POST", "PUT"],
           docs=Docs(
               post=Operation(request=MyCreateSchema, response=MyReadSchema),
               put=Operation(request=MyEditSchema, response=MyReadSchema)
           )
def example():
    # code goes here
    pass

API

  • TODO: this section coming soon!

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

chalice_spec_pr07-0.1.5.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

chalice_spec_pr07-0.1.5-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file chalice_spec_pr07-0.1.5.tar.gz.

File metadata

  • Download URL: chalice_spec_pr07-0.1.5.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for chalice_spec_pr07-0.1.5.tar.gz
Algorithm Hash digest
SHA256 879b8a72afc372b162fa31dc4bdede18c3d7421df3a3837a57dd3ad86a6ebcf4
MD5 ff082c94fd7036f76f1e1ddefdaf657a
BLAKE2b-256 6c6e4a29eb4532a95af57e8300e035e77d187d6d9920d6358c02c049e6256a55

See more details on using hashes here.

File details

Details for the file chalice_spec_pr07-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for chalice_spec_pr07-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 df2cbadcf66535637ad60062bcd76c68b987820b1914c2756223e4560440de75
MD5 2404c1e113f72bd0787cc4e7e9256be9
BLAKE2b-256 946cd1036c994cc6b46e45ee9d81f6b588ac7c438d2b9a9b5a3d31c0959d3738

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