我已经按照创建Swagger文档的说明进行了操作,现在我的文档可以通过Swagger UI使用。我希望能够将文档生成为JSON或YAML格式,以便在例如Postman中轻松导入,但是我在SwaggerModule
中找不到任何合适的方法,也没有导出按钮。
我已经按照创建Swagger文档的说明进行了操作,现在我的文档可以通过Swagger UI使用。我希望能够将文档生成为JSON或YAML格式,以便在例如Postman中轻松导入,但是我在SwaggerModule
中找不到任何合适的方法,也没有导出按钮。
document
转化为字符串,然后像这样将其写入文件系统:const app = await NestFactory.create(ApplicationModule);
const options = new DocumentBuilder()
.setTitle("Title")
.setDescription("description")
.setVersion("1.0")
.build();
const document = SwaggerModule.createDocument(app, options);
fs.writeFileSync("./swagger-spec.json", JSON.stringify(document));
SwaggerModule.setup("/api", app, document);
await app.listen(80);
if (process.env.NODE_ENV === 'development')
。 - Crysfel已测试在 Nestjs v9 中。
假设文档路径如下
http://localhost:3000/docs
获取JSON
http://localhost:3000/docs-json
http://localhost:3000/docs-yaml
SwaggerModule.setup('docs', app, document)
,所以我从 localhost:3000/docs-json 下载json文件。 - Hectorhttp://localhost:3000/api-json
(假设您的Swagger文档可在http://localhost:3000/api
下访问)。 - oyalhiswagger-ui-express
还是fastify
提供文档,位置将不同。/api
。如果不是这种情况,请替换为您的端点,或者如果您没有使用swagger-ui-express
的基本URL,则为http://localhost:3000/-json。已在Nestjs v8中进行了测试
GET http://{host}:{port}/docs
获取JSON
GET http://{host}:{port}/docs/json
使用最新版本的NestJS(截至撰写本文为v8),按照OpenAPI文档中的设置,您应该能够在不进行任何额外设置的情况下访问JSON文档。
GET http://{host}:{port}/api-docs