mirror of
https://github.com/zoriya/elysia-swagger.git
synced 2025-12-06 00:36:10 +00:00
74 lines
1.7 KiB
Markdown
74 lines
1.7 KiB
Markdown
# @elysiajs/swagger
|
|
Plugin for [elysia](https://github.com/elysiajs/elysia) to auto-generate Swagger page.
|
|
|
|
## Installation
|
|
```bash
|
|
bun add @elysiajs/swagger
|
|
```
|
|
|
|
## Example
|
|
```typescript
|
|
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`.
|
|
|
|
# config
|
|
|
|
## provider
|
|
@default 'scalar'
|
|
Choose between [Scalar](https://github.com/scalar/scalar) & [SwaggerUI](https://github.com/swagger-api/swagger-ui)
|
|
|
|
## scalar
|
|
Customize scalarConfig, refers to [Scalar config](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)
|
|
|
|
## swagger
|
|
Customize Swagger config, refers to [Swagger 3.0.3 config](https://swagger.io/specification/v3)
|
|
|
|
## path
|
|
@default '/swagger'
|
|
|
|
The endpoint to expose Swagger
|
|
|
|
## excludeStaticFile
|
|
@default true
|
|
|
|
Determine if Swagger should exclude static files.
|
|
|
|
## exclude
|
|
@default []
|
|
|
|
Paths to exclude from the Swagger endpoint
|