@clementoh/更好-openapi-viewer-core 页面存档备份,存于互联网档案馆
框架-不可知 OpenAPI 正常化与取景器原始.
当前原始人
- 用于检测OpenAPI 3.0,OpenAPI 3.1,和Swagger 2.0文档的文档摄取帮助.
- JSON内部指针
$ref常规化文档的解析,加外部$ref解决器脚手架,可以称为消费者提供的装载器. - 用标签、参数、响应、计划、认证、内容类型、服务器和供应商延伸元数据提取操作.
- 搜索,过滤,和标签分组 帮助导航和发现.
- Schema树, schema 类型,以及用于后期UI渲染的 schema/media/Response 示例助手.
- 具有状态范围/类别分类和Swagger 2.0反应正常化帮助者
produces堕倒. - 请求 OpenAPI 3.x 的正体介质类型发现
requestBody.content和 Swagger 2.0 体/形式参数. - 参数和请求体验证工具,用于所需值、计划类型、enum、常数、对象属性、阵列和组成保护.
- OpenAPI 3.x 的安全方案提取
components.securitySchemes和 Swagger 2.0 组合键securityDefinitions,包括 OAuth 流元数据和 OpenID 连接发现 URL. - 需要通过Markdown-aware表面得到的描述.
- 尝试 It Out 请求原始的服务器选择和变量替换,服务器变量默认/选项,常见参数序列化样式(
form, (中文(简体) ),simple, (中文(简体) ),spaceDelimited, (中文(简体) ),pipeDelimited, (中文(简体) ),deepObject, (中文(简体) ),matrix,以及label),请求URL/header/cookie/body构造,基本/承接者/api-key/OAuth/OpenID证书应用程序,授权前证书合并,请求/应答截取器钩,以及卷曲/截取/httpie/python片断生成. - 查看器配置原始的路由路径,JSON路径,标题,布局,默认扩展,深链接,过滤,请求持续时间显示,坚持auth,语法突出,支持提交方法,操作/tag排序器,模型扩展深度,以及插件元数据.
查看器配置
ViewerConfig 抓取框架-不可知的接子适配器,UI可以不依赖特定的渲染器而共享. 使用 mergeViewerConfig 到层包默认值,适配器默认值,以及用户覆盖值.
import { mergeViewerConfig } from '@clementoh/better-openapi-viewer-core';
const config = mergeViewerConfig({
title: 'Example API',
defaultExpansion: 'list',
deepLinking: true,
filter: true,
displayRequestDuration: true,
persistAuthorization: false,
supportedSubmitMethods: ['get', 'post', 'patch', 'delete'],
operationsSorter: 'alpha',
tagsSorter: 'alpha',
defaultModelExpandDepth: 2,
});
sortOperations, (中文(简体) ), sortOperationTags,以及 isSubmitMethodSupported 为想要在不同运行时间尊重相同配置的消费者提供可重复使用的行为.
试试看吧
buildTryItOutRequest 建立框架中立的请求模式。 消费者可以在执行前提供请求截取器,并在自己的HTTP客户端返回后应用响应截取器.
import { applyTryItOutResponseInterceptor, buildTryItOutRequest, generateRequestSnippet } from '@clementoh/better-openapi-viewer-core';
const request = buildTryItOutRequest({
operation,
parameters: { id: 42 },
interceptors: {
request: (next) => ({ ...next, headers: { ...next.headers, 'X-Client': 'docs' } }),
response: (next) => next,
},
});
const snippet = generateRequestSnippet(request, 'fetch');
const response = applyTryItOutResponseInterceptor({ status: 200, headers: {}, body: {} }, { operation }, request);
使用 resolveReference(document, ref, { loader }) 当一个渲染器或适配器想要解决外部引用时。 内部 #/... 首先从提供的文档中解析指针;只有在装入器提供时才获取非内部的取出指针.
验证和认证元数据
Core 暴露出渲染器软件包在发送 Try It Out 请求前可以调用的已输入的帮助器.
import {
getOpenIdConnectUrls,
getSecuritySchemes,
getSecuritySchemeMetadata,
mergePreauthorizedCredentials,
validateParameterValues,
validateRequestBody,
} from '@clementoh/better-openapi-viewer-core';
const parameterResult = validateParameterValues({
parameters: operation.parameters,
values: { id: 42 },
});
const bodyResult = validateRequestBody({
requestBody: operation.requestBody,
body: { name: 'Ada' },
contentType: 'application/json',
});
const securityMetadata = getSecuritySchemeMetadata(getSecuritySchemes(document));
const openIdUrls = getOpenIdConnectUrls(getSecuritySchemes(document));
const oauthFlows = securityMetadata.flatMap((scheme) => scheme.oauthFlows);
const auth = mergePreauthorizedCredentials({
auth: {
bearerAuth: { value: 'token' },
oauth: { value: 'access-token', scopes: ['read:users'] },
},
});
服务器变量
服务器可变帮助者会曝光默认,并允许选项而不将消费者绑定在一个UI.
import { getServerVariableDefaults, getServerVariableOptions, normalizeServerVariables, selectServerUrl } from '@clementoh/better-openapi-viewer-core';
const variables = normalizeServerVariables(server, { environment: 'staging' });
const url = selectServerUrl([server], { variables });
const defaults = getServerVariableDefaults(server);
const options = getServerVariableOptions(server);