我的控制器代码是这样的。
@Controller('customer')
export class CustomerController{
constructor(private readonly customerService: CustomerService){}
@Post('lookup')
async someMethod(@Body() body:any){
console.log("BEGIN -- CustomerController.someMethod");
我希望在Swagger中看到一个可以输入一些文本作为请求正文的地方,但我看到的却是
6条答案
按热度按时间8e2ybdfx1#
添加@ApiProperty()
mm9b1k5b2#
所以听起来这里有一些事情要做。Swagger UI是一个发送请求的辅助工具,但是要做到这一点,它需要知道请求主体的形状。
any
还不够好。如果你正在寻找一个允许你发送任何东西的工具,curl或postman是你最好的选择(至少是免费的)。Nest有一个Swagger插件,它会读取你的Typescript代码,并相应地修饰你的类型和方法,但是你必须选择启用它,否则,你需要使用
@nestjs/swagger
包中的装饰器来告诉Swagger什么类型应该进出方法。只要对应于
@Body()
的类型有swagger装饰器或您启用了swagger插件并且有一个有效的类,swagger UI就应该按预期显示,但是使用上面的方法和类型any
对您没有任何好处。kkbh8khc3#
我的端点接受未知的键/值数据,我遇到了同样的问题(我尝试了 any,unknown,Record〈string,any〉,object,{}),最后
@Body() data: Map<string, any>
对我起作用了。gijlo24d4#
你可以这样试试看:
72qzrwbm5#
我会建议使用dto的身体。
参见documentation。
DTO的示例如下所示。
日期:
功能
@ApiProperty
向swagger请求添加属性。它应该显示如下内容:
上面的代码将给予与下面类似的输出,其中也将记录您的模式:
希望这个有用。
cclgggtu6#
Swagger无法解释您的代码。这 * 不是 * 您的代码的问题。如果您的目标是测试您的API供UI团队使用,而不是一个全面的swagger文档,那么我发现最简单的方法是使用Postman。尝试使用Postman攻击您的API。