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.

¿Puedo aplicar dinámicamente un cuadro desplegable (select) en el documento Swagger usando Go?

Estoy usando Swagger UI con Fiber en Go. Hasta donde sé, Swagger puede configurar matrices [string] de esta manera. El formulario actual requiere ingresar enum de antemano, y quiero agregarlo como un script. ¿Hay alguna forma de hacerlo?

¿Puedo añadir dinámicamente el esquema de parámetros de Swagger UI en el script de Go?

Image description

paths:
  /test:
    get:
      parameters:
        - in: query
          name: tag
          schema:
            type: string
            default: none
            enum:
              - available
              - pending
              - sold
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible añadir dinámicamente el esquema de parámetros de Swagger UI en el script de Go utilizando el framework Fiber. Una forma de lograr esto es definiendo el objeto de parámetros dinámicamente antes de enviar la respuesta de vuelta al cliente.

    Por ejemplo, supongamos que quieres añadir un nuevo valor de enumeración “sin stock” al arreglo existente [string]. Puedes modificar el código anterior de la siguiente manera:

    package main
    
    import (
        "github.com/gofiber/fiber/v2"
    )
    
    func main() {
        app := fiber.New()
    
        app.Get("/test", func(c *fiber.Ctx) error {
            // Define el objeto de parámetros
            params := fiber.Map{
                "in":   "query",
                "name": "tag",
                "schema": fiber.Map{
                    "type":    "string",
                    "default": "none",
                    "enum":    []string{"disponible", "pendiente", "vendido", "sin stock"},
                },
            }
    
            // Envía la respuesta con el objeto de parámetros
            return c.JSON(params)
        })
    
        app.Listen(":3000")
    }
    

    En este ejemplo, definimos el objeto de parámetros de forma dinámica utilizando el tipo de dato fiber.Map. Añadimos el nuevo valor de enumeración “sin stock” al arreglo existente [string] y enviamos la respuesta de vuelta al cliente utilizando el método c.JSON().

    De esta manera, el esquema de parámetros de Swagger UI puede ser añadido de forma dinámica en el script de Go.

Comments are closed.