所有控制器的全局头(nestJs swagger)

9nvpjoqh  于 7个月前  发布在  其他
关注(0)|答案(2)|浏览(75)

有没有办法在NestJS中全局添加所需的头到所有端点/控制器?
有一个控制器绑定装饰器@ApiHeader。有没有一种方法可以将其应用于所有端点?

xzabzqsa

xzabzqsa1#

我发现的最短的方法是做以下事情:

export function Headers() {
  return applyDecorators(
    ApiHeader({
      name: 'header1',
      description: "description"
    }),
    ApiHeader({
      name: 'header2',
      description: "description"
    }),
    ApiHeader({
      name: 'header3',
      description: "description"
    })
  );
}

个字符

ccgok5k5

ccgok5k52#

可以使用DocumentBuilder.addGlobalParameters方法。
不幸的是,它没有在文档中描述,但这里是我的例子:

SwaggerModule.setup(
    'docs',
    application, // your NestJS application created by NestFactory.create
    SwaggerModule.createDocument(
      application,
      new DocumentBuilder()
        .setTitle('My application')
        .addGlobalParameters({
          in: 'header',
          required: false,
          name: 'x-global-header',
          schema: {
            example: 'some value',
          },
        })
        .build(),
    ),
  );

字符串

相关问题