在Nest.js + Swagger中不显示请求体。

问题描述 投票:0回答:1

我的控制器代码是这样的。

@Controller('customer')
export class CustomerController{

    constructor(private readonly customerService: CustomerService){}

    @Post('lookup')
    async someMethod(@Body() body:any){

        console.log("BEGIN -- CustomerController.someMethod");

我希望在Swagger中看到一个可以输入文本作为请求体的地方,但我看到的是这样的

enter image description here

swagger swagger-ui nestjs nestjs-swagger nestjs-config
1个回答
2
投票

所以听起来这里有一些问题。Swagger UI是一个发送请求的辅助工具,但要做到这一点,它需要知道请求体的形状。any 是不够好的。如果你正在寻找一个可以让你发送任何东西的工具,curl或postman是你最好的选择(至少是免费的)。

Nest有一个 Swagger插件 会读取你的Typescript代码并相应地装饰你的类型和方法,但你必须选择启用它。否则,你需要使用来自于 @nestjs/swagger 包来告诉 Swagger 方法的进出需要什么类型。

只要对应于 @Body() 有气势的装修公司 你启用了swagger插件 有一个有效的类,那么swagger UI应该会像预期的那样显示出来,但是如果使用上面的方法,并且使用类型 any 它不会给你带来任何好处。

© www.soinside.com 2019 - 2024. All rights reserved.