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}