p0t*_*tta 2 swagger swagger-ui nestjs nestjs-swagger nestjs-config
我的控制器代码是这样的。
@Controller('customer')
export class CustomerController{
constructor(private readonly customerService: CustomerService){}
@Post('lookup')
async someMethod(@Body() body:any){
console.log("BEGIN -- CustomerController.someMethod");
Run Code Online (Sandbox Code Playgroud)
我期待在 Swagger 中看到一个我可以输入一些文本作为请求正文的地方,但我看到的是这个
Tok*_*ris 20
添加@ApiProperty()
export class User{
@ApiProperty()
name:string
}
Run Code Online (Sandbox Code Playgroud)
所以听起来这里发生了一些事情。Swagger UI 是用于发送请求的辅助工具,但要做到这一点,它需要知道请求正文的形状。any不够好。如果您正在寻找一种允许您发送任何内容的工具,curl 或邮递员是您最好的选择(至少是免费的)。
Nest 有一个Swagger 插件,可以通读您的 Typescript 代码并相应地装饰您的类型和方法,但您必须选择启用它。否则,您需要使用@nestjs/swagger包中的装饰器来告诉 Swagger 哪些类型需要传入和传出方法。
只要对应的类型@Body()具有 swagger 装饰器,或者您启用了 swagger 插件并具有有效的类,swagger UI 就应该按预期显示,但是使用上述类型并使用类型any不会对您有任何好处。