В Dart shelf_router я могу добавить промежуточное программное обеспечение следующим образом:
final handler = Pipeline()
.addMiddleware(logRequests())
.addMiddleware(auth())
.addHandler(router.call);
Однако я хочу, чтобы промежуточное программное обеспечение auth
применялось только к определенным маршрутам, а не ко всем:
final router = Router()
..get('/public', _publicHandler) // no auth
..get('/private', _privateHandler); // this route should apply auth
Как бы я это сделал?
https://codereview.stackexchange.com/a/274219 помогает? Насколько я вижу, вы могли бы просто обернуть свой собственный обработчик в Pipeline().addMiddleware().addHandler() и таким образом можно было бы ориентироваться на определенные маршруты?