bugfix: use `next()` not `throw` in event handlers
bugfix: return json if no sub API handler found; fix mw result coding style
app_main/test: backend by UI testing boilerplate