Sanic Pydatic
Project description
Sanic Pyndatic
Description
A library for parsing and validating http requests for sanic web-framework using pydantic library
Full documentation here
Requirements
python >= 3.7
How to install
pip install sanic-pydantic
Dependencies
pydantic
Example
from sanic_pydantic import webargs
from sanic import Sanic
from sanic.response import json
from pydantic import BaseModel
app = Sanic("new app")
class PathModel(BaseModel):
id: int
class QueryModel(BaseModel):
name: str
class BodyModel(BaseModel):
age: int
class HeadersModel(BaseModel):
api_key: str = Field(alias="x-api-key")
@app.route("/get/<id:int>", methods=["GET"])
@webargs(path=PathModel, headers=HeadersModel)
def example_get_endpoint_params(request, id, **kwargs):
response = json({"id":id})
return response
@app.route("/get-request", methods=["GET"])
@webargs(query=QueryModel)
def example_get_endpoint(request, **kwargs):
print(kwargs)
response = json(kwargs)
return response
@app.route("/post-request", methods=["POST"])
@webargs(query=QueryModel, body=BodyModel)
def example_post_endpoint(request, **kwargs):
print(kwargs)
response = json(kwargs)
return response
@app.route("/async-get-request", methods=["GET"])
@webargs(query=QueryModel)
async def async_example_get_endpoint(request, **kwargs):
print(kwargs)
response = json(kwargs)
return response
@app.route("/async-post-request", methods=["POST"])
@webargs(query=QueryModel, body=BodyModel)
async def async_example_post_endpoint(request, **kwargs):
print(kwargs)
response = json(kwargs)
return response
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)
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
sanic-pydantic-1.3.1.tar.gz
(4.1 kB
view details)
File details
Details for the file sanic-pydantic-1.3.1.tar.gz
.
File metadata
- Download URL: sanic-pydantic-1.3.1.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee6f8699faa805b735e4469dd7634111b4d34383ed7ce13cd984d4c9c12e0f9f |
|
MD5 | 70b979547a84ed316862f465546d99df |
|
BLAKE2b-256 | 8c5bbbfe08e70e702d4566ee462fced129e71e53a6708edbf3a214cb31c31f75 |