es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NestJS Swagger: Editar nombre de ruta

Tengo un punto final como este:

@Controller(['ruta1', 'ruta2'])
export class test {

@Post('endpoint')
  public test() { return; }

}

Swagger genera dos rutas: ‘/ruta1/endpoint’ y ‘/ruta2/endpoint’.

Me gustaría que solo se genere un punto final en la documentación de Swagger ‘/endpoint’, pero luego se indiquen en la documentación las diferentes rutas que el usuario puede usar para llamar al punto final. ¿Hay alguna forma de editar esto y mostrar solo una ruta?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible editar la documentación de swagger para mostrar solo un endpoint en la ruta de URL ‘/endpoint’ y especificar las diferentes rutas que se pueden usar para llamarlo. Para hacer esto, puedes usar el decorador @ApiOperation() para agregar una descripción al endpoint y el decorador @ApiParam() para agregar parámetros para las diferentes rutas. Aquí tienes un ejemplo:

    import { Controller, Post } from '@nestjs/common';
    import { ApiOperation, ApiParam } from '@nestjs/swagger';
    
    @Controller(['ruta1', 'ruta2'])
    export class TestController {
    
      @Post('endpoint')
      @ApiOperation({
        summary: 'Descripción del endpoint. Usa ya sea /ruta1/endpoint o /ruta2/endpoint para llamarlo.',
      })
      @ApiParam({
        name: 'ruta',
        description: 'La ruta a usar para llamar al endpoint. Ya sea "ruta1" o "ruta2".',
        type: String,
        enum: ['ruta1', 'ruta2'],
        required: true,
      })
      public test() { 
        return; 
      }
    
    }
    

    En este ejemplo, se utiliza el decorador @ApiOperation() para agregar una descripción resumida del endpoint y las dos posibles rutas que se pueden utilizar para llamarlo. El decorador @ApiParam() se utiliza para agregar un parámetro requerido para el parámetro de consulta ‘ruta’, que especifica la ruta a usar para llamar al endpoint. La opción enum en el decorador @ApiParam() especifica los valores permitidos de ‘ruta’, que son ‘ruta1’ y ‘ruta2’.

    Después de agregar estos decoradores, regenera la documentación de swagger y deberías ver solo un endpoint en '/endpoint' con la descripción y la información del parámetro incluidas.

Comments are closed.