Sanic OpenAPI v3
Give your Sanic API an OpenAPI v3 specification. Based on original Sanic OpenAPI extension.
Installation
pip install sanic-openapi3
Usage
Import blueprint and use simple decorators to document routes:
from sanic_openapi3 import openapi, openapi_blueprint
@app.get("/user/<user_id:int>")
@openapi.summary("Fetches a user by ID")
@openapi.response(200, { "user": { "name": str, "id": int } })
async def get_user(request, user_id):
...
@app.post("/user")
@openapi.summary("Creates a user")
@openapi.body({"user": { "name": str }})
async def create_user(request):
...
app.blueprint(openapi_blueprint)
You'll now have a specification at the URL /openapi.json.
Your routes will be automatically categorized by their blueprints.
Model your input/output
class Car:
make = str
model = str
year = int
class Garage:
spaces = int
cars = [Car]
@app.get("/garage")
@openapi.summary("Gets the whole garage")
@openapi.response(200, Garage)
async def get_garage(request):
return json({
"spaces": 2,
"cars": [{"make": "Nissan", "model": "370Z"}]
})
Get more descriptive
class Car:
make = doc.String("Who made the car")
model = doc.String("Type of car. This will vary by make")
year = doc.Integer("4-digit year of the car", required=False)
class Garage:
spaces = doc.Integer("How many cars can fit in the garage")
cars = doc.List(Car, description="All cars in the garage")
Configure all the things
app.config.OPENAPI_VERSION = '1.0.0'
app.config.OPENAPI_TITLE = 'Car API'
app.config.OPENAPI_DESCRIPTION = 'Car API'
app.config.OPENAPI_TERMS_OF_SERVICE = 'https://example.com/terms'
app.config.OPENAPI_CONTACT_EMAIL = 'mail@example.com'
app.config.OPENAPI_CONTACT_NAME = 'mail@example.com'
Release files for sanic-openapi3 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sanic-openapi3-0.0.2.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sanic_openapi3-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.8 kB
Release files / sanic-openapi3-0.0.2.tar.gz
| Download URL | sanic-openapi3-0.0.2.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e93ed8390fa54c6695817a0f4b6ba415bea837850f921718d2cec9c3785130b
|
|
BLAKE2b-256 checksum How to use checksums |
99373a136e8c7a9465d05166d48a3e90d7d23dabdab9cebb426d8f557474fd7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / sanic_openapi3-0.0.2-py3-none-any.whl
| Download URL | sanic_openapi3-0.0.2-py3-none-any.whl |
|---|---|
| Size | 8.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
76ddfcd24e087bdaa7c662f76aa88792211623672e895759a299cf406d3b08e4
|
|
BLAKE2b-256 checksum How to use checksums |
53de941491e368c6e307694c70adc3becae83633e39a45c9e41a7e849ab28345
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |