web: add `preprocessor` decorator, fix issue with kwargs in methods