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.

Comprensión del comportamiento de la etiqueta x-doc en fastify-swagger.

Tengo las siguientes versiones:

fastify (3.20.1) y fastify-swagger(4.8.4)

Estoy usando fastify en un entorno de Node js/JavaScript.

Ahora, en mi archivo route.js, mientras estoy especificando la ruta de fastify, estoy escribiendo estas dos etiquetas adicionales (después de la sección response:):

"x-doc": {
                title: 'foo1',
                category: 'NSS',
                filename: 'bar1',
            },
"my-custom-tag": {
                title: 'foo2',
                category: 'NSS',
                filename: 'bar2',
            },

Resultado:

Imagen del resultado

Sin embargo, en el JSON generado (swagger.json o swagger.yaml), puedo ver que aparece “x-doc”, pero no “my-custom-tag”.

Por supuesto, como no estoy usando un “swagger-ui” personalizado, no esperaba que ninguna de estas cosas (x-doc o my-custom-tag) apareciera en el HTML de Swagger al verlo desde el navegador.

Sin embargo, me gustaría saber la razón por la cual particularmente “x-doc” aparece en el JSON resultante, pero no “my-custom-tag”.

Y qué debo hacer si quiero que “my-custom-tag” también aparezca en el JSON/yaml resultante.

Tags:  ,

Answer

  1. Avatar for davy.ai

    La razón por la que x-doc aparece en el JSON resultante pero no my-custom-tag es porque x-doc es una clave predefinida en Swagger, mientras que my-custom-tag no lo es. Al usar fastify-swagger, solo las claves predefinidas de Swagger aparecerán en la documentación generada de manera predeterminada.

    Para que my-custom-tag aparezca en el JSON o en yaml resultante, deberás modificar la configuración del plugin fastify-swagger para incluirlo como una etiqueta personalizada.

    Aquí tienes un ejemplo de cómo agregar my-custom-tag a la configuración de fastify-swagger:

    fastify.register(require('fastify-swagger'), {
      swagger: {
        info: {
          title: 'Mi API',
          description: 'Documentación de la API',
          version: '1.0.0'
        },
        tags: [
          { name: 'my-custom-tag', description: 'Etiqueta personalizada' } // agregar etiqueta personalizada aquí
        ]
      },
      exposeRoute: true
    })
    

    Al agregar my-custom-tag al array de etiquetas en la configuración de fastify-swagger, ahora aparecerá en la documentación generada en JSON o yaml.

Comments are closed.