@ dunx/ openapi (帮助)
应用程序已经拥有的路径生成的 OpenAPI 3.1 文件
Swagger 用户界面 或者说 斯卡尔 从同一地点任职 Bun.serve 作为其他一切.
与基于反射的生成器的区别在于它所读到的. 一条路线
策略是请求路径验证的对象 。 其安全性
元数据 (@Public(), (中文(简体) ), @Roles()这是它所执行的。 两个都已经
因此文档不是第二个可以漂移的描述
第一个.
安装
bun add @dunx/openapi zod
zod 是同级依赖。 路线验证目标 标准Schema, 所以 Valibot
和 ArkType 进行验证,但 OpenAPI 文件需要 JSON Schema,
只有佐德已经 z.toJSONSchema。在运行时间和
显示为文档中允许的条目,并在生成时发出警告.
文档UI是选择输入的,每个子路径有一个可选的对等点. 安装一个你 挂载,或无:
| 导入 | 渲染器 | 要安装的对等点 |
|---|---|---|
@dunx/openapi/swagger | SwaggerRenderer | swagger-ui-dist |
@dunx/openapi/scalar | ScalarRenderer | @scalar/api-reference |
使用量
import { HttpFactory } from '@dunx/http';
import { OpenApiModule } from '@dunx/openapi';
import { SwaggerRenderer } from '@dunx/openapi/swagger';
const app = await HttpFactory.create(
OpenApiModule.forRoot({
title: 'Payments',
version: '1.4.0',
root: AppModule, // the graph to document, and the graph that gets imported
// Omit for the document alone: no `renderer`, no page route.
renderer: new SwaggerRenderer({ docExpansion: 'list' }),
}),
);
app.setGlobalPrefix('api');
await app.listen(3000);
// GET /api/docs the explorer
// GET /api/openapi.json the document
forRootAsync 所以一个应用软件可以读出它的标题
ConfigService 或者提供另一个图书馆的计划.
这是什么
这个 OpenAPI 指南 简直太夸张了.
| 块 | 它会做什么 |
|---|---|
OpenApiModule | 包扎其文档根,挂载 JSON 和 a renderer页面 |
DocsRenderer | 页面合同. PackageAssets 为渲染器的文件服务 |
@ApiDoc | 路线或类别上的概要、说明、标记和折旧 |
@ApiHidden | 一个真实的路径 远离文档。 住在这里 @dunx/http |
describeRoutes | 路径作为数据, 构建无 |
generateDocument | 这些路线的文件 |
betterAuthDocument | 更好的奥斯自己的路径 合并在一起。 住在这里 @dunx/auth |
bunx dunx-openapi | 写入文件的文档, 没有容器和服务器 |
安全来自同一个地方 @Public() 财务报告和审定财务报表 @Roles() 守护者读取的元数据
在运行时间,所以文档没有第二个注释可以不同意.
响应计划只是文档: 动词装饰者持有处理器
在编译时返回类型,而不是验证每个响应.
authorize 决定谁可以看到文档、页面和页面的资产。 这个
一样 Authorize 作为 @dunx/dashboard被拒绝的请求得到404。 若为
authorize 返回 a Response,例如重定向以签名,该响应
现按原样发送.
页:1
- 添加
.meta({ id })把它放进去components/schemas没有 无论它在哪里使用,它都是内在的..strict()之后.meta()丢弃 元数据,所以调用.meta()最后一个. - Prose属于
description。一个探险家将一个图案标注为title,哪个@dunx/openapi填入组件名称. - 页面嵌入文档而不是取回,并装入渲染器的
文件来自您自己的安装。 没到CDN 除非你转身
斯卡尔的
withDefaultFonts继续. renderer坐在旁边root而不是在forRootAsync工厂: 控制器在有容器运行之前宣布其路线.
许可证
麻省理工学院