Come si differenzia il concetto di middleware http dagli eventi?

1

Ho pensato al modo migliore per implementare il middleware nella mia applicazione web e mi ha fatto pensare, in che modo il middleware è diverso dagli eventi?

Diciamo che prima che un controller venga eseguito voglio verificare che l'IP da cui proviene la richiesta non sia nella lista nera. Creo un nuovo middleware o registro un listener per un evento OnRequest o BeforeController ? Questi due non ottengono la stessa cosa? Entrambi vengono eseguiti prima del controller e hanno la possibilità di eseguire azioni in base al contenuto della richiesta.

Suppongo che differiscano nel modo in cui il middleware è più incentrato sull'idea del controller before / after, in cui gli eventi possono essere utilizzati per tutti i tipi di cose nell'intera applicazione.

C'è anche il fatto che probabilmente non si desidera eseguire quel controllo IP su ogni richiesta in modo da avere un modo per escludere / includere il controllo per determinati controllori. Ciò sarebbe in qualche modo hacky con gli eventi poiché l'idea alla base di questi è che i loro ascoltatori vengono chiamati ogni volta che l'evento viene infornato.

Queste sono le uniche differenze o c'è qualcosa che mi manca?

    
posta user3117244 19.05.2018 - 22:49
fonte

1 risposta

0

No, non ti manca nulla.

I framework si evolvono e vengono aggiunti nuovi paradigmi, a causa della loro crescente popolarità, ma i vecchi paradigmi vengono mantenuti compatibili con le versioni precedenti.

Pertanto, puoi ancora utilizzare gli eventi o utilizzare il middleware.

Data la popolarità di un approccio middleware per eseguire azioni di pre-richiesta / post-risposta, è meglio attenersi ad esso per i nuovi progetti. Se si mantiene un progetto legacy che utilizza eventi, è possibile continuare a utilizzare gli eventi o migrare l'intero codice base al middleware. Non utilizzare mai entrambi gli approcci nello stesso progetto: ciò creerà necessariamente ambiguità per i manutentori che si aspettano di trovare un'azione in una forma di un evento quando è effettivamente fatto in una forma di middleware, o opposto.

    
risposta data 20.05.2018 - 00:31
fonte

Leggi altre domande sui tag