Plugin for elysia to auto-generate Swagger page.
bun add @elysiajs/swagger
import { Elysia, t } from 'elysia'
import { swagger } from '@elysiajs/swagger'
const app = new Elysia()
.use(swagger())
.get('/', () => 'hi', { response: t.String({ description: 'sample description' }) })
.post(
'/json/:id',
({ body, params: { id }, query: { name } }) => ({
...body,
id,
name
}),
{
params: t.Object({
id: t.String()
}),
query: t.Object({
name: t.String()
}),
body: t.Object({
username: t.String(),
password: t.String()
}),
response: t.Object({
username: t.String(),
password: t.String(),
id: t.String(),
name: t.String()
}, { description: 'sample description' })
}
)
.listen(8080);
Then go to http://localhost:8080/swagger
.
@default 'scalar' Choose between Scalar & SwaggerUI
Customize scalarConfig, refers to Scalar config
Customize Swagger config, refers to Swagger 3.0.3 config
@default '/swagger'
The endpoint to expose Swagger
@default true
Determine if Swagger should exclude static files.
@default []
Paths to exclude from the Swagger endpoint