【问题标题】:NestJs Swagger for PostmanNestJs Swagger for Postman
【发布时间】:2021-06-07 04:22:26
【问题描述】:

有没有办法将生成的 swagger.json 作为集合导入 Postman ?

我尝试导入它,但端点没有显示在 Postman 中?

我正在使用 NestJs 和 Swagger + Postman

【问题讨论】:

  • 可以分享一下swagger yaml文件吗?
  • 我不使用 yaml 文件来生成 swagger api。我在 main.ts 中指定了它
  • 可以分享一下生成的json文件吗?

标签: swagger postman nestjs nestjs-swagger


【解决方案1】:

您可以使用fastify-swagger 在 Postman 中导出您的 swagger 数据。

要生成和下载 Swagger JSON 文件,请导航到 http://localhost:3000/api-json (swagger-ui-express) 或 http://localhost:3000/api/json (fastify-swagger)您的浏览器(假设您的 Swagger 文档在 http://localhost:3000/api 下可用)。

更多关于使用 NestJS 的 openApi 的信息,请访问here

【讨论】:

  • 感谢您的留言。目前我正在尝试导入 swagger-ui-express 版本。在邮递员中从 api/json 导入后,那里没有显示任何内容。 json文件也有一些错误: "securitySchemes": { "bearer": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http", "in": "header " } 无效属性
  • 同样的导入在 Insomnia 中有效,但在 Postman 中无效
  • 尝试将导出的数据从 Swagger 导入 Insomnia,并将 Insomnia 数据导出到 Postman,可以按照文档中的here
【解决方案2】:

在 main.ts 中设置你的招摇时(请参阅此处的文档:NestJs Swagger Docs),你可以添加.setExternalDoc('Postman Collection', '/your-api-docs-url-with-the-word-json-at-the-end')。这会在文件顶部为您提供一个链接,以便您可以单击以获取可导入的 JSON。

这是我的一个例子:

const document = SwaggerModule.createDocument(
    app,
    new DocumentBuilder()
      .setTitle('Nest Api')
      .setDescription('MyNestApiDescription')
      .setVersion('1.0')
      .addBearerAuth()
      .setExternalDoc('Postman Collection', '/docs-json')
      .build(),
  );
  SwaggerModule.setup('/docs', app, document);

如您所见,我的 API 文档位于 '/docs',所以我的 json url 就是 '/docs-json'

有关如何将其导入 Postman 的信息,请参阅此 stackoverflow 帖子:Postman JSON Docs Import

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 2021-10-18
    • 2018-11-27
    • 2021-03-04
    • 2019-12-30
    • 2021-10-14
    • 2021-11-27
    • 2021-11-09
    相关资源
    最近更新 更多