Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saltyaom/kingworld-swagger
A plugin for kingworld that auto-generate Swagger page
https://github.com/saltyaom/kingworld-swagger
Last synced: 2 days ago
JSON representation
A plugin for kingworld that auto-generate Swagger page
- Host: GitHub
- URL: https://github.com/saltyaom/kingworld-swagger
- Owner: SaltyAom
- License: mit
- Created: 2022-11-12T03:08:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-04T14:03:20.000Z (almost 2 years ago)
- Last Synced: 2024-11-10T10:15:48.827Z (3 days ago)
- Language: TypeScript
- Size: 78.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @elysiajs/swagger
A plugin for [elysia](https://github.com/elysiajs/elysia) to auto-generate Swagger page.## Installation
```bash
bun add @elysiajs/swagger
```## Example
```typescript
import { Elysia } from 'elysia'
import { swagger } from '@elysiajs/swagger'const app = new Elysia()
.use(swagger())
.get('/', () => 'hi')
.get('/unpath/:id', ({ params: { id } }) => id)
.get('/unpath/:id/:name', ({ params: { id, name } }) => `${id} ${name}`)
.post(
'/json/:id',
({ body, params: { id }, query: { name } }) => ({
...body,
id,
name
}),
{
schema: {
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()
})
}
}
)
.listen(8080)
```Then go to `http://localhost:8080/swagger`.
# config
## swagger
Customize Swagger config, refers to [Swagger 2.0 config](https://swagger.io/specification/v2/)## path
@default '/swagger'The endpoint to expose Swagger
## excludeStaticFile
@default trueDetermine if Swagger should exclude static files.
## exclude
@default []Paths to exclude from the Swagger endpoint