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;