Hooks de inicialização¶
Com o decorador zayt.web.startup, você pode marcar funções como hooks que serão chamados quando a aplicação iniciar. As funções serão chamadas na ordem em que foram descobertas e, se alguma delas lançar um erro, a a aplicação não iniciará.
from zayt.web import startup
@startup
def my_startup_hook():
...
Funções de inicialização podem receber serviços como parâmetros através do sistema de injeção de dependências.
from zayt.di import service
from zayt.web import startup
@service
class OIDCService:
async def oidc_discovery(self):
...
@startup
async def my_startup_hook(oidc_service: OIDCService):
await oidc_service.oidc_discovery()
Você pode usar a anotação Inject se precisar de um serviço com nome.
from typing import Annotated
from zayt.di import Inject, service
from zayt.web import startup
@service(name="provider")
class OIDCService:
async def oidc_discovery(self):
...
@startup
async def my_startup_hook(
oidc_service: Annotated[OIDCService, Inject("provider")]
):
await oidc_service.oidc_discovery()