Chalice x APISpec x Pydantic plug-ins
Project description
chalice-spec
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 879b8a72afc372b162fa31dc4bdede18c3d7421df3a3837a57dd3ad86a6ebcf4 |
|
MD5 | ff082c94fd7036f76f1e1ddefdaf657a |
|
BLAKE2b-256 | 6c6e4a29eb4532a95af57e8300e035e77d187d6d9920d6358c02c049e6256a55 |
File details
Details for the file chalice_spec_pr07-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: chalice_spec_pr07-0.1.5-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df2cbadcf66535637ad60062bcd76c68b987820b1914c2756223e4560440de75 |
|
MD5 | 2404c1e113f72bd0787cc4e7e9256be9 |
|
BLAKE2b-256 | 946cd1036c994cc6b46e45ee9d81f6b588ac7c438d2b9a9b5a3d31c0959d3738 |