Skip to main content

A suite of sanic sanic_utils

Project description

sanic-utils

A suite of useful Sanic utilities

from_json

A decorator for Sanic endpoints to grab the json from the request and pass it in as a parameter. Default Sanic approach:

from sanic import Sanic, response
from sanic.request import Request

app = Sanic("App Name")

class ExampleInput:
    name: str
    identifier: str

@app.post("/test")
async def test(request: Request):
    json = request.json
    message = None # convert json to object in whatever prefered way
    return response.text("done")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8112)

Usage of the decorator:

from dataclasses import dataclass

from dataclasses_json import dataclass_json
from sanic import Sanic, response
from sanic.request import Request

from sanic_utils.from_json import from_json

app = Sanic("App Name")

@dataclass_json
@dataclass
class ExampleInput:
    name: str
    identifier: str

@app.post("/test")
@from_json(message_type=ExampleInput)
async def test(request: Request, message: ExampleInput):
    print(message)
    return response.text("done")

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8112)

Usage

Mark endpoint method with @from_json decorator passing in a single param, the resulting message type. The message type should be marked with @dataclass_json and @dataclass.

Dependencies

sanic 20.6.3

dataclasses 0.6

dataclasses-json 0.5.1

CONTRIBUTING

LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sanic_utils-0.1.1-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file sanic_utils-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: sanic_utils-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.8

File hashes

Hashes for sanic_utils-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 831623066d99c1ac10256c4ef257fca7c1547cfe709d378b85cf91b78349ab52
MD5 2f8649daf0c8103eeb03a75f3c9c3864
BLAKE2b-256 3aa58f08d614932b0650928b53d6d323ad3233fbff5f6a82f6c14f5208f790b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page