В качестве файла metrics.controller.ts
у меня есть следующее:
import { Controller, Get } from '@nestjs/common';
import { ApiOperation, ApiResponse, ApiUseTags, ApiModelProperty } from '@nestjs/swagger';
import { PrometheusService } from './prometheus.service';
@Controller('metrics')
@ApiUseTags('Misc')
export class MetricsController {
constructor(private readonly prometheusService: PrometheusService) {}
@Get('/')
@ApiOperation({
title: 'Prometheus metrics',
description: 'Exposes default prometheus node metrics'
})
@ApiResponse({ status: 200, description: 'Prometheus metrics' })
public getMetrics(): string {
return this.prometheusService.getMetrics();
}
}
Однако Swagger неверно указывает Тип содержимого ответа из application / json , когдафактический результат - текст / простой текст :
![Screen shot of output](https://i.imgur.com/2k6ncsV.png)
Я попытался просмотреть документы Swagger относительно описания ответов и элемент Iищу это часть контента.Однако этот документ не распространяется на аннотации TypeScript. Документация Swagger Core 2.X говорит о @Operation
аннотации, но у меня нет ссылки на это, и я не знаю, где ее взять - только @ApiOperation
работает.
Соответствующая информация о версии из npm ls
в каталоге проекта выглядит следующим образом:
+-- @nestjs/swagger@2.5.1
| +-- @nestjs/common@5.3.6 deduped
| +-- @nestjs/core@5.3.6 deduped
| +-- lodash@4.17.10
| +-- path-to-regexp@2.2.1 deduped
| `-- swagger-ui-express@3.0.10
Какая правильная аннотация для указания Тип содержимого ответа из текст / обычный