Refine request dispatching via api

- [ ] More solid request dispathing workflow
- [x] `catch_errors` decorator
    - [x] Support custom errorhandler
    - [x] Write test suite