# Ignition 8.3: Guidance/example on end-to-end WebUI / Gateway interaction

**URL:** <https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054>\
**Category:** Module Development\
**Tags:** ignition83\
**Created:** [January 2, 2026, 4:44pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054 "2026-01-02T16:44:12Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [January 2, 2026, 5:33pm UTC](https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054/4 "2026-01-02T17:33:47Z")

</div>

Hmmm. You're right. The gateway hook's `.mountRouteHandlers()` method is empty.

That's where you need to register your APIs and connect their implementations.

This was where I got the inspiration for my drivers:

> [@Module Development Example Question](https://forum.inductiveautomation.com/t/module-development-example-question/107639/3):
>
> Contributing to the central OpenAPI definition from a module is very easy. Just override/implement mountRouteHandlers in your module's gateway hook. The Route class we provide has an OpenAPI builder attached to it you can use to build up a response. @Override public void mountRouteHandlers(RouteGroup routes) { routes.newRoute("/api/v1/session/:sessionId/pages") .type(RouteGroup.TYPE\_JSON) .method(HttpMethod.GET) .requirePermission(PermissionT…

(I didn't register them in the OpenAPI docs.)

---

_[View the full topic](https://forum.inductiveautomation.com/t/ignition-8-3-guidance-example-on-end-to-end-webui-gateway-interaction/113054)._
