Zod OpenAPI
Zod OpenAPI Hono est une extension de la classe Hono qui prend en charge OpenAPI. Elle permet de valider les valeurs et les types avec Zod et de générer une documentation OpenAPI Swagger. Ce site présente uniquement l’utilisation de base.
Commencez par définir vos schémas avec Zod. L’objet z doit être importé depuis @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')Créez ensuite une 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',
},
},
})Enfin, configurez l’application :
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',
},
})Vous pouvez démarrer votre application comme avec Hono. Pour Cloudflare Workers et Bun, utilisez ce point d’entrée :
ts
export default app