- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 nestjs swagger module并想要创建我的 API 文档。对于依赖于请求主体的端点,我可以将 DTO 类分配给文档,例如
@ApiBody({ type: CreateUserDTO })
一些端点也依赖于请求参数或查询。对于参数,我会做类似的事情
@ApiParam({ type: GetUserByIdDTO })
(我知道这是一个不好的例子,因为用户 ID 不需要 DTO,但我们假设您想使用类验证器通过 DTO 类验证您的参数)
但是我收到了这个错误
Argument of type '{ type: typeof GetUserByIdDTO; }' is not assignable to parameter of type 'ApiParamOptions'. Property 'name' is missing in type '{ type: typeof GetUserByIdDTO; }' but required in type 'ApiParamMetadata'.
对于查询我会做类似的事情
@ApiQuery({ type: GetUsersDTO })
得到这个错误
Argument of type '{ type: typeof GetUsersDTO; }' is not assignable to parameter of type 'ApiQueryOptions'. Property 'name' is missing in type '{ type: typeof GetUsersDTO; }' but required in type 'ApiQueryMetadata'.
所以 APIBody
装饰器似乎工作正常,但我该如何修复我的 APIParam
和 APIQuery
装饰器?
最佳答案
使用命名参数/查询时需要
@ApiQuery
和 @ApiParam
,例如 @Query('pageSize')
o @Param('id')
。在这种情况下,NestJS Swagger 模块应该直接从指定的 DTO 对象中提取信息,例如:
async findElements(@Query() query: ElementsQueryDto) {
// ...
}
需要注意的重要一点是,Dtos 应该是类,而不是接口(interface)。
关于swagger - 为 ApiParam 和 ApiQuery 定义 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61440798/
我正在使用 nestjs swagger module并想要创建我的 API 文档。对于依赖于请求主体的端点,我可以将 DTO 类分配给文档,例如 @ApiBody({ type: CreateUse
我是一名优秀的程序员,十分优秀!