如何解决NestJS / Swagger-未获取完整说明
我在让Swagger正常工作时遇到问题。我可以获取请求正文的示例,但不能获取响应或swagger-json的示例。响应显示为{}
,而swagger-json是:
{
statusCode: 404,message: "Cannot GET /swagger-json",error: "Not Found",}
{
"collection": "@nestjs/schematics","sourceRoot": "src","compilerOptions": {
"deleteOutDir": true,"plugins": ["@nestjs/swagger/plugin"]
}
}
在我的main.ts中,我有:
import { DocumentBuilder,SwaggerModule } from '@nestjs/swagger';
...
const options = new DocumentBuilder()
.setTitle('ILuvCoffee')
.setDescription('Coffee Application')
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app,options);
SwaggerModule.setup('api',app,document);
我正在上nest.js课程,到目前为止我已经非常忠实地遵循了。遇到此障碍时,我仔细检查了我的代码是否正确,甚至复制/粘贴了代码。我还仔细检查了我的DTO文件是否遵循*.dto.ts
和我的实体文件*.entity.ts
。但是我仍然无法让Swagger显示超出请求的内容。有什么想法吗?谁在看我不是?
如果您想更深入地了解一下,这里是我的仓库:https://github.com/jstrother/iluvcoffee
谢谢!
解决方法
好像您没有在控制器中指定实际的响应类型,而是使用<any>
,例如:
@Get(':id')
findOne(@Param('id') id: string): Promise<any> {
console.log(id);
return this.coffeesService.findOne(id);
}
尝试将这些any
更改为实际类型
@Get(':id')
findOne(@Param('id') id: string): Promise<Coffee> {
console.log(id);
return this.coffeesService.findOne(id);
}
请注意,您还可以使用ApiResponse
装饰器来明确定义响应->检查official example以获得更多详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。