node.js - “请求正文”未出现在 Swagger UI 上
问题描述
我正在尝试对我的 Swagger 文档上的POST请求进行测试,但遇到以下问题:
在 Swagger Editor 上我可以正常测试它,但在 Swagger UI 上,Request body 字段没有出现,所以我无法输入我的电子邮件和密码来测试请求。
在这里,您可以看到带有可供编辑的数据示例的请求正文字段:
Swagger Editor Example
在这里你可以看到 Swagger UI 没有显示它:
Swagger UI Example
注意:我已经生成了一个nodejs-server。
我的.yaml
代码:
openapi: '3.0.1'
info:
version: 1.0.0
title: Test
description: Test openapi.
servers:
- url: http://localhost:3005
paths:
/login:
post:
summary: Login
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/login'
responses:
200:
description: Test
components:
schemas:
login:
type: object
properties:
email:
type: string
example: example@example.com.br
password:
type: string
format: password
example: example123
expires:
type: integer
example: 86400
required:
- email
- password
解决方案
TL;DR:将 Swagger UI 更新到最新版本。
只是为了澄清场景(供未来的读者使用):OP 将此 OpenAPI 3.0 定义粘贴到 Swagger Editor 中,生成 Node.js 服务器并运行它。请求正文显示问题与作为此 Node.js 服务器 ( http://localhost:8080/docs
) 一部分的 Swagger UI 相关。
问题是这个 Node.js 服务器使用了一个非常旧版本的 Swagger UI。更具体地说,它使用
oas3-tools
包 v. 1.0.1,其中捆绑了 Swagger UI v. 3.3.1。最新的 Swagger UI 版本(在撰写本文时)是 3.22.1,它没有描述的问题。
解决方案是将 Swagger UI 更新到最新版本:
存储库中存在将捆绑的 Swagger UI 更新到最新版本的问题。
oas3-tools
考虑提交 PR 来解决这个问题。作为快速修复,您可以 fork
oas3-tools
,更新文件夹中捆绑的 Swagger UI 文件<oas3-tools>\middleware\swagger-ui
,然后更新package.json
生成的 Node.js 服务器的 以引用您的oas3-tools
fork。
推荐阅读
- sql - 如何根据多条记录中存在的交易计算运行剩余余额/金额
- android - 滚动到 Android 的 Recycler 视图中的下一组视图
- django - 食谱餐上的 Django 多对多关系
- qt - 为什么在我的自定义 Slider 类中调用 setValue 会导致该程序崩溃?
- swift - 未从 YPImagePicker 显示所选图像
- javascript - 即使使用 await/async,执行顺序也不正确。内部代码完成后我可以执行外部代码吗?
- python - 将 .SVG 图像放入 tkinter Frame
- vba - 刷新链接表时的 MS Access 检测
- javascript - 如何将表单中的数据 POST 到不同的服务器
- c# - 如何从 MySQL 中获取 sum(Net_weight) 以查询结果并使用 ID 保存到 MSSQL