Skip to main content

aiohttp simple pydantic validator

Project description

aiohttp-validator

Downloads License Python Versions

aiohttp simple pydantic http request validator

Installation

pip install aiohttp-validator

A Simple Example

from typing import Any, Dict, List

import pydantic
from aiohttp import web

import aiohttp_validator as validator

routes = web.RouteTableDef()


class RequestHeaders(pydantic.BaseModel):
    requestId: str
    timestamp: float = 0.0


@routes.get('/')
@validator.validated()
async def simple_get(request: web.Request, headers: RequestHeaders, offset: int = 0):
    assert isinstance(headers, RequestHeaders)
    assert isinstance(offset, int)

    return web.Response()


@routes.post('/{path}')
@validator.validated()
async def simple_post(request: web.Request, body: Dict[str, Any], path: str, offset: int, limit: int = 10):
    assert isinstance(body, dict)
    assert isinstance(path, str)
    assert isinstance(offset, int)
    assert isinstance(limit, int)

    return web.Response()


class SubModel(pydantic.BaseModel):
    l: List[str]
    i: int


class Body(pydantic.BaseModel):
    i: int
    f: float
    sub: SubModel


@routes.post('/{path1}/{path2}')
@validator.validated()
async def pydantic_body(request: web.Request, body: Body, path1: str, path2: int, pages: List[int]):
    assert isinstance(body, Body)
    assert isinstance(path1, str)
    assert isinstance(path2, int)
    assert isinstance(pages, list)

    return web.Response()


app = web.Application()
app.add_routes(routes)

web.run_app(app, port=8080)

Project details


Download files

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

Source Distribution

aiohttp-validator-0.1.0.post3.tar.gz (4.2 kB view hashes)

Uploaded Source

Built Distribution

aiohttp_validator-0.1.0.post3-py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 3

Supported by

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