Às vezes é muito útil ter listeners para requisições, permitindo implementar funcionalidades que precisam ser acionadas sempre que “algo” acontece em sua aplicação. Dois tipos de listeners foram adicionados para esse propósito.Documentation Index
Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
Use this file to discover all available pages before exploring further.
Listener de Captura
Por exemplo, imagine que toda vez que é feita uma requisição à rota ‘/logs’, seu código execute uma tarefa que verifica se os novos logs diferem dos anteriores. Vamos ver como isso pode ser feito:APP_STATUS, LOGS ou BACKUP. Essa função deve receber dois parâmetros:
— before (representa o estado após a requisição)
— after (representa o estado antes da requisição)
O tipo de dado retornado por before e after depende do endpoint que o listener está observando. Se for a rota APP_STATUS, receberá um StatusData; LOGS receberá um LogsData; e BACKUP receberá um BackupData.
Como você deve ter notado no exemplo acima, na primeira comparação de logs, after != before retorna True. Isso ocorre porque after é igual a LogsData(logs=''), já que ainda não há nada armazenado no cache interno.
Informações adicionais sobre este decorator
Informações adicionais sobre este decorator
- Se você usa discord.py ou algum fork, sabe que o que diferencia eventos é o nome
das funções ao redor das quais o decorator é aplicado, mas aqui é diferente. Para
saber qual rota da API o decorator deve observar, usamos o parâmetro
endpoint, que recebe uma classeEndpoint. Portanto, o nome da função decorada fica a seu critério. - A função decorada pode ser qualquer tipo de callable: funções comuns,
corrotinas ou até classes (
__init__será chamado). - Se o endpoint não for [Endpoint.app_status()], [Endpoint.logs()] ou [Endpoint.backup()],
será retornado apenas um parâmetro
response(do tiposquarecloud.http.Response).
Listener de Requisição
Os “request listeners” fazem praticamente a mesma coisa. Aqui você usa o [Client], e o retorno de todos os endpoints são objetossquarecloud.http.Response.
Passando argumentos extras
Você pode passar alguns métodos o argumento nomeadoextra, que será repassado ao seu listener

