import { createRoute, OpenAPIHono } from '@hono/zod-openapi' import { z } from 'zod' const app = new OpenAPIHono() const QuerySchema = z.object({ name: z.string().optional().openapi({ param: { name: 'name', in: 'query' }, example: 'John' }) }) const ResponseSchema = z.object({ message: z.string().openapi({ example: 'Hello from API, John' }) }) const route = createRoute({ method: 'get', path: '/', request: { query: QuerySchema }, responses: { 200: { content: { 'application/json': { schema: ResponseSchema } }, description: 'Successful response' }, 400: { description: 'Invalid request' } } }) app.openapi(route, (c) => { const { name } = c.req.valid('query') return c.json({ message: `Hello from API${name ? `, ${name}` : ''}` }) }) export default app export type BaseAppType = typeof app