Appearance
Zod OpenAPI
Zod OpenAPI Hono 是一个扩展的 Hono 类,支持 OpenAPI。 使用它,你可以使用 Zod 验证值和类型,并生成 OpenAPI Swagger 文档。在本网站上,仅显示了基本用法。
首先,使用 Zod 定义你的模式。z 对象应该从 @hono/zod-openapi 导入:
🌐 First, define your schemas with Zod. The z object should be imported from @hono/zod-openapi:
ts
import { z } from '@hono/zod-openapi'
const ParamsSchema = z.object({
id: z
.string()
.min(3)
.openapi({
param: {
name: 'id',
in: 'path',
},
example: '1212121',
}),
})
const UserSchema = z
.object({
id: z.string().openapi({
example: '123',
}),
name: z.string().openapi({
example: 'John Doe',
}),
age: z.number().openapi({
example: 42,
}),
})
.openapi('User')接下来,创建路由:
🌐 Next, create a route:
ts
import { createRoute } from '@hono/zod-openapi'
const route = createRoute({
method: 'get',
path: '/users/{id}',
request: {
params: ParamsSchema,
},
responses: {
200: {
content: {
'application/json': {
schema: UserSchema,
},
},
description: 'Retrieve the user',
},
},
})最后,设置应用:
🌐 Finally, set up the app:
ts
import { OpenAPIHono } from '@hono/zod-openapi'
const app = new OpenAPIHono()
app.openapi(route, (c) => {
const { id } = c.req.valid('param')
return c.json({
id,
age: 20,
name: 'Ultra-man',
})
})
// The OpenAPI documentation will be available at /doc
app.doc('/doc', {
openapi: '3.0.0',
info: {
version: '1.0.0',
title: 'My API',
},
})你可以像使用 Hono 一样启动你的应用。对于 Cloudflare Workers 和 Bun,请使用此入口点:
🌐 You can start your app just like you would with Hono. For Cloudflare Workers and Bun, use this entry point:
ts
export default app另请参阅
🌐 See also