Tulip Logo IconTulip
Router

Route Handlers

Expose an app-local ORPC router through a Next.js route handler.

Next.js route handlers expose your ORPC router to the browser.

The route handler should create request context, pass the app router to ORPC, and return the ORPC response.

Example

import { onError } from "@orpc/server";
import { RPCHandler } from "@orpc/server/fetch";
import { createContext } from "@/server/router/init";
import { appRouter } from "@/server/router/router";

const handler = new RPCHandler(appRouter, {
  interceptors: [onError((error) => console.error("[orpc] Unhandled RPC error", error))],
});

async function handleRequest(request: Request) {
  const { response } = await handler.handle(request, {
    prefix: "/api/rpc",
    context: createContext({ headers: request.headers }),
  });

  return response ?? new Response("Not found", { status: 404 });
}

export const GET = handleRequest;
export const POST = handleRequest;

Continue reading

On this page