# Inter-app API showcase Generated with `wrnexus workspace inter-app-api-showcase`. - `web` exposes `GET /api/product` and calls admin through private RPC. - `admin` provides the `catalog` service. - `packages/shared` owns the typed contract imported by both apps. Run the verification from the repository root: ```bash bun test examples/inter-app-api-showcase/apps/web/test/inter-app.test.ts ``` A WrNexus **workspace** — multiple apps, one gateway, interconnected. ``` inter-app-api-showcase/ wrnexus.workspace.ts # apps ↔ domains map (used by `wrnexus gateway`) apps/ web/ # a WrNexus app → localhost, web.localhost admin/ # a WrNexus app → admin.localhost packages/ shared/ # @app/shared — shared code + cross-app pubsub bus ``` ## Run everything (one port, routed by domain) ```bash bun install bun run dev # = wrnexus gateway → http://127.0.0.1:3000 ``` Add the hosts to your machine (e.g. /etc/hosts): ``` 127.0.0.1 web.localhost admin.localhost ``` Open `http://localhost:3000` for the web app or `http://admin.localhost:3000` for the admin app. The ports printed for individual apps are internal gateway targets, not public workspace URLs. ## Interconnect - **Shared code:** import `@app/shared` in any app. - **Runtime messaging:** `import { bus } from "@app/shared"` then `bus.publish("tenant:created", {...})` in one app and `bus.subscribe("tenant:*", fn)` in another (needs Redis). - **Databases:** point apps at the same `db`/`databases` in their config. ## Add another app ```bash wrnexus workspace add reports --domain=reports.localhost ```