在NestJS中,我可以在控制器级别添加什么装饰器来向我的Swagger文档添加Authorization头?

tzcvj98z  于 2022-12-23  发布在  其他
关注(0)|答案(2)|浏览(164)

我使用的是NestJS 7.6.11。我的控制器上有以下装饰器...

@Controller('private')
@ApiTags('MyObjects')
@ApiConsumes('application/json')
@ApiProduces('application/json')
@UseInterceptors(new JwtInterceptor())
export class MyController {

是否有任何装饰器可以添加,这将导致生成Swagger(OpenAPI 3)文档,以便它指示我的控制器中的所有方法都需要有一个“授权”头?

**编辑:**作为响应,我添加了@ApiHeader,这样我的控制器和方法看起来就像

@

Controller('myendpoint')
@ApiTags('MyObject')
@ApiConsumes('application/json')
@ApiProduces('application/json')
@ApiHeader({
  name: 'authorization',
  description: 'Auth token',
})
@UseInterceptors(new JwtInterceptor())
export class MyObjectController {

...
 @Get('/:id')
  @ApiOkResponse({
    description: 'OK',
    type: Content,
  })
  @ApiBadRequestResponse()
  @ApiInternalServerErrorResponse()
  @ApiOperation({
    summary: 'Get object by id',
    description: 'Get object by id',
    operationId: 'findObjectById',
  }) 
  findObjectById(@Req() req, @Param('id') id: string): Promise<MyObject> {

但是当swagger文档生成时,虽然我可以输入“authorization”头值,

当我点击“执行”时,它并没有包含在我的curl中,它是这样生成的

curl -X GET "http://localhost:8060/myendpoint/abcdef" -H  "accept: application/json"
k2fxgqgv

k2fxgqgv1#

@ApiHeader()@ApiBasicAuth()@ApiBearerAuth()@ApiOAuth2()@ApiSecurity(),所有这些都可以在this page上找到,您的具体情况可能会有所不同,但其中一个应该可以解决问题。

k5ifujac

k5ifujac2#

将此添加到您的端点标头:
第一个月

相关问题