OpenAPI 插件
为 elysia 提供自动生成 API 文档页面的插件。
安装命令:
bash
bun add @elysiajs/openapi
然后使用该插件:
typescript
import { Elysia } from 'elysia'
import { openapi } from '@elysiajs/openapi'
new Elysia()
.use(openapi())
.get('/', () => 'hello')
.post('/hello', () => 'OpenAPI')
.listen(3000)
访问 /openapi
会展示一个 Scalar UI,根据 Elysia 服务器生成的端点文档。你也可以访问 /openapi/json
来获取原始的 OpenAPI 规范。
详情
detail
扩展了 OpenAPI Operation Object 规范。
detail 字段是一个对象,用于描述用于 API 文档的路由信息。
它可能包含以下字段:
detail.hide
你可以通过设置 detail.hide
为 true
来隐藏该路由,不在 Swagger 页面显示。
typescript
import { Elysia, t } from 'elysia'
import { openapi } from '@elysiajs/openapi'
new Elysia().use(openapi()).post('/sign-in', ({ body }) => body, {
body: t.Object(
{
username: t.String(),
password: t.String()
},
{
description: '期望接收用户名和密码'
}
),
detail: {
hide: true
}
})
detail.deprecated
声明该操作已被弃用。使用者应避免使用该操作。默认值为 false
。
detail.description
对操作行为的详细说明。
detail.summary
该操作的简短摘要。
配置
以下是插件接受的配置项
enabled
@default true 启用/禁用该插件
documentation
OpenAPI 文档信息
@see https://spec.openapis.org/oas/v3.0.3.html
exclude
配置排除不在文档中的路径或方法
exclude.methods
排除文档的请求方法列表
exclude.paths
排除文档的路径列表
exclude.staticFile
@default true
排除静态文件路由,不生成文档
exclude.tags
排除文档的标签列表
path
@default '/openapi'
暴露 OpenAPI 文档前端的端点路径
provider
@default 'scalar'
OpenAPI 文档前端实现选项:
references
每个端点的额外 OpenAPI 引用配置
scalar
Scalar 配置,参考 Scalar config
specPath
@default '/${path}/json'
暴露 OpenAPI 规范(JSON 格式)的端点路径
swagger
Swagger 配置,参考 Swagger config
下面你可以找到使用该插件的常见模式。