Roteamento

Roteamento é definido pelos decoradores na funções handler.

from asgikit import Request
from zayt.web import get


@get("hello")
async def handler(request: Request):
    await request.respond_text("Hello, World!")

Parâmetros de caminho

Parâmetros podem ser definidos no caminho dos handlers usando a sintaxe {nome_do_parametro}.

from asgikit import Request
from zayt.web import get


@get("hello/{name}")
async def handler(request: Request):
    name = request.path_params["name"]
    await request.respond_text(f"Hello, {name}!")

Correspondência de caminho

O comportamento padrão é para um parâmetro de caminho corresponder a um único segmento. Se você quiser corresponder ao caminho inteiro, ou a um subcaminho do caminho da requisição, utilize a sintaxe {*nome_do_parametro}.

from asgikit import Request
from zayt.web import get


@get("hello/{*path}")
async def handler(request: Request):
    path = request.path_params["path"]
    name = " ".join(path.split("/"))
    await request.respond_text(f"Hello, {name}!")

Para uma requisição como GET hello/Python/World, o handler retornará Hello, Python World!.

Você pode misturar ambos os tipos de parâmetros sem problemas:

  • {*caminho}

  • {*caminho}/segmento_literal

  • {parametro_normal}{*caminho}

  • {parametro_normal}/{*caminho}/{outro_parametro}