I'm Using NestJs and its Swagger plugin to auto-generate documentation of my API.
Problem is, I cant figure out how to make the response schema appear in the documentation. In my GET routes, all i get is "Code 200", with no data structure.
I have a typical setup, where a controller method uses a corresponding service method, which in turn uses a TypeOrm repository. For example:
@Get()
findAll() {
return this.usersService.findAll();
}
I tried using the @ApiResponse decorator, but didn't really see any way to make it serve this purpose. Also, creating a user.dto.ts and making it the return type of the controller route didn't do any good.
Eventually, this is what i get in the Swagger:
How can i define the response body schema?
You can use the type
and isArray
properties in conjunction with the ApiResponse
family of decorators. For example:
@ApiOkResponse({
description: 'The user records',
type: User,
isArray: true
})
@Get()
findAll() {
return this.usersService.findAll();
}
Additionally, consider using the Swagger CLI plugin to help you have these decorators applied automatically during build time instead of you having to keep everything in sync manually.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With