如何在NestJS中为swagger添加描述到@ApiTags?

问题描述 投票:0回答:3

我想添加 api 块的描述。

我已经尝试过:

@ApiOperation({
  description: 'Operation description'
})

这不起作用。

swagger nestjs
3个回答
12
投票

添加方法级别的描述

@ApiOperation({ summary: 'Operation description' })

检查此处:https://docs.nestjs.com/openapi/migration-guide#writing-changes

在类级别添加标签(控制器)

@ApiTags('MyTag')

这将创建一个可折叠块,其下包含所有方法。

检查这里:https://docs.nestjs.com/openapi/decorators


10
投票

改进之前的答案: 您可以在初始步骤添加标签描述

new DocumentBuilder()
.setTitle('API with NestJS')
...
.addTag('SomeTag1', 'Tag description 1')
.addTag('SomeTag2', 'Tag description 2')

然后在类级别(控制器)上使用标签

@ApiTags('SomeTag1')

0
投票

// users.controller.ts
@ApiTag({
  name: 'users',
  description: 'Get all users',
})
@ApiBearerAuth()
@Controller('users')
export class UsersController {}


// ApiTag.decorator.ts
import { swaggerConfig } from '@/common/swagger';
import { TagObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
import { ApiTags } from '@nestjs/swagger';
import { applyDecorators } from '@nestjs/common';

export const ApiTag = (tagObject: TagObject) => {
  swaggerConfig.tags.unshift(tagObject);
  return applyDecorators(ApiTags(tagObject.name));
};

//  common/swagger.ts
import { DocumentBuilder } from '@nestjs/swagger';

const swaggerConfig = new DocumentBuilder()
  .setTitle('管理后台')
  .setDescription('管理后台接口文档')
  .setVersion('1.0')
  .addBearerAuth()
  .build();

export { swaggerConfig };

//main.ts
  const options: SwaggerDocumentOptions = {
    operationIdFactory: (controllerKey: string, methodKey: string) => methodKey,
  };
  const document = SwaggerModule.createDocument(app, swaggerConfig, options);
  SwaggerModule.setup('docs', app, document);

© www.soinside.com 2019 - 2024. All rights reserved.