APISpec plugin handling Starlette.
Project description
Plugin for APISpec handling Starlette
This module should not be considered as stable as it is still under development.
However a stable version can be expected by mid March 2020 and any issue or pull request is welcome at any time.
Provides a plugin to use with APISpec to be able to handle Starlette endpoints.
StarlettePlugin usage
from starlette.applications import Starlette
from apispec import APISpec
from apispec_starlette import StarlettePlugin
app = Starlette()
spec = APISpec(
title="My API",
version="0.0.1",
openapi_version="2.0",
plugins=[StarlettePlugin(app)],
)
Documenting responses inside endpoint docstring
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from apispec import APISpec
from apispec_starlette import StarlettePlugin
app = Starlette()
spec = APISpec(
title="My API",
version="0.0.1",
openapi_version="2.0",
plugins=[StarlettePlugin(app)],
)
@app.route("/my_endpoint")
def my_endpoint():
"""
responses:
200:
description: "Action performed"
schema:
properties:
status:
type: string
type: object
"""
return JSONResponse({"status": "test"})
Documenting responses outside of endpoint docstring
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from apispec import APISpec
from apispec_starlette import StarlettePlugin, document_response
app = Starlette()
spec = APISpec(
title="My API",
version="0.0.1",
openapi_version="2.0",
plugins=[StarlettePlugin(app)],
)
@app.route("/my_endpoint")
def my_endpoint():
return JSONResponse({"status": "test"})
document_response(spec, endpoint="/my_endpoint", method="get", status_code=200, response={
"description": "Action performed",
"schema": {
"properties": {"status": {"type": "string"}},
"type": "object",
}
})
Add a /swagger.json endpoint
Your endpoints can be automatically discovered and documented when requesting /swagger.json
from starlette.applications import Starlette
from apispec_starlette import add_swagger_json_endpoint
app = Starlette()
spec = add_swagger_json_endpoint(app=app)
How to install
- python 3.6+ must be installed
- Use pip to install module:
python -m pip install apispec_starlette
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
Close
Hashes for apispec_starlette-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a641ecc5f59a6c6274f06b370ba814032fafd241d28403e54787b5754dfbb29f |
|
MD5 | 46d67b3ee9097944bf8c372e98846def |
|
BLAKE2b-256 | 7193d74bc8647073325716658a47c04f5f16d60bac9f463a83a625b7d261ab94 |