| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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
|