Capture Listener
Ad esempio, immagina che ogni volta che viene effettuata una richiesta alla rotta ‘/logs’, il mio codice esegua un’operazione che verifica se i nuovi log differiscono da quelli precedenti. Bene, vediamo come si può fare:APP_STATUS, LOGS o BACKUP. Questa funzione dovrebbe accettare due parametri:
before(rappresenta lo stato prima della richiesta)after(rappresenta lo stato dopo la richiesta)
before e after dipende da quale endpoint il listener sta “ascoltando”. Se si tratta della rotta APP_STATUS, riceverà uno StatusData, LOGS riceverà un LogsData e BACKUP riceverà un BackupData.
Come avrai notato nell’esempio sopra, la prima volta che avviene il confronto tra i log, after != before restituisce True. Questo accade proprio perché after è uguale a LogsData(logs=''), dato che non è ancora stato memorizzato nulla nella cache interna.
Informazioni aggiuntive su questo decoratore
Informazioni aggiuntive su questo decoratore
- Se usi discord.py o qualche suo fork (probabilmente lo usi), dovresti
sapere che ciò che differenzia gli eventi è il nome
delle funzioni che il decoratore avvolge, ma qui è diverso. Per sapere
quale
rotta API il decoratore deve “ascoltare”, usiamo il parametro
endpopint, che riceve una classeEndpoint, quindi il nome della funzione che il decoratore avvolge dipende da te. - La funzione che il decoratore avvolge può in realtà essere qualsiasi cosa che sia
un callable. Questo include funzioni normali, coroutine e persino
classi (
__init__verrà chiamato). - Se l’endpoint non è un [Endpoint.app_status()], [Endpoint.logs()] o [Endpoint.backup()],
verrà restituito solo un parametro
response(di tiposquarecloud.http.Response).
Request Listener
I “request listeners” fanno praticamente la stessa cosa. Ma qui usi il [Client], e il valore restituito da tutti gli endpoint è un oggettosquarecloud.http.Response.
Passare argomenti aggiuntivi
Puoi passare ad alcuni metodi un argomento con parola chiave chiamatoextra, che verrà passato al tuo listener

