HTTP#

Novo na versão 0.6.0.

Aqui mostraremos como escrever um handler que é estimulado através de requisições HTTP.

Um handler é simplesmete uma corotina que recebe um request wrapper (asyncworker.http.wrapper.RequestWrapper) e retorna uma response (aiohttp.web.Response). Essa corotina passa a ser um handler “asyncworker” quando é decorada com @app.http.*(), onde app é uma instância de asyncworker.App.

Vejamos um handler bem simples que apenas retorna HTTP 200 OK.

from aiohttp import web

from asyncworker.http.wrapper import RequestWrapper
from asyncworker import App

app = App()


@app.http.get(["/"])
async def one_param(wrapper: RequestWrapper):
    return web.json_response({})

O RequestWrapper tem um atributo .http_request que é o Request original entregue pelo aiohttp. Podemos fazer o que for preciso para extrair dele as informações que precisarmos. Para mais detalhes, veja a doc do aiohttp: https://docs.aiohttp.org/en/stable/web.html