Skip to main content

Next.js App Router

HttpRouter can be used directly with Next.js App Router route handlers.

1. Install

npm install @daiso-tech/core hono

2. Create the handler

// app/api/[[...route]]/route.ts
import {
HttpRouter,
HttpRes,
defaultHttpRouterAdapter,
} from "@daiso-tech/core/http-router";
import { handle } from "hono/vercel";

const router = new HttpRouter({ router: defaultHttpRouterAdapter });

router.endpoint({
url: "/api/hello",
method: "GET",
handler: async () => HttpRes.text("Hello from Next.js!"),
});

export const GET = handle(router);
export const HEAD = handle(router);
export const POST = handle(router);
export const PUT = handle(router);
export const DELETE = handle(router);
export const PATCH = handle(router);
export const OPTIONS = handle(router);

File structure

.
├── app
│ └── api
│ └── [[...route]]
│ └── route.ts
├── package.json
└── next.config.js

3. Develop

npm run dev

4. Build

npm run build

5. Start

npm start
info

Next.js automatically maps HTTP methods to the exported handler names (GET, POST, etc.). Route groups and prefixes defined via HttpRouter.route() map to the file-system route.

Reference: Next.js Route Handlers