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.

openapi-generator asciidoc limita las columnas del parámetro y omite el tipo

¿Existe alguna forma de especificar qué columnas aparecen en la sección de Parámetros? Por ejemplo, me gustaría usar Schema/tipo en lugar de Patrón.

Mi configuración:

<plugin>
    <groupid>org.openapitools</groupid>
    <artifactid>openapi-generator-maven-plugin</artifactid>
    <version>5.3.0</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputspec>${project.basedir}/target/openapi.json</inputspec>
                <generatorname>asciidoc</generatorname>
                <configoptions>
                    <useintroduction>true</useintroduction>
                </configoptions>
                <skipvalidatespec>true</skipvalidatespec>
            </configuration>
        </execution>
    </executions>
</plugin>

Aquí está la parte relevante del fragmento de código fuente:

/myapi/{resourceId}:
    get:
      tags:
      - Operaciones de la API
      summary: Obtener un widget
      description: Obtener un widget mediante su ID de recurso
      operationId: findOne
      parameters:
      - name: resourceId
        in: path
        required: true
        schema:
          type: string
      - name: affiliateId
        in: header
        required: false
        schema:
          type: integer
          format: int64
          default: 256

Y aquí está la parte relevante del fragmento de salida:

====== Parámetros de cabecera

[cols="2,3,1,1,1"]
|===
|Nombre|Descripción|Requerido|Valor predeterminado|Esquema

|affiliateId
|
|-
|256
|

|===

En lugar de la columna “Patrón”, me gustaría que se muestre algo como “Esquema” junto con el valor de “integer” y/o “int64”.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible especificar qué columnas aparecen en la sección de parámetros utilizando el generador AsciiDoc de OpenAPI Generator. En este caso específico, puedes modificar la plantilla utilizada para generar la documentación AsciiDoc para reemplazar la columna “Pattern” con una columna que muestre el esquema y el tipo del parámetro.

    Para lograr esto, puedes crear una plantilla personalizada para el generador AsciiDoc y modificar la plantilla parcial “parameters” para incluir el esquema y el tipo del parámetro en las respectivas columnas. Aquí tienes un ejemplo de cómo podría verse la plantilla parcial “parameters” modificada:

    // parameters.adoc.template
    
    //// Generar la tabla de parámetros
    [[parameters]]
    .Parameters
    [cols="2,3,1,1"]
    |===
    |Nombre |Tipo |Descripción |Requerido
    
    {{#operation.parameters}}
    |{{name}} |{{schema.type}}/{{schema.format}} |{{#hasDescription}}{{description}}{{/hasDescription}} |{{#required}}Sí{{/required}}{{^required}}No{{/required}}
    {{/operation.parameters}}
    |===
    

    Ten en cuenta la modificación en la segunda columna de la tabla, que ahora incluye tanto el tipo como el formato del parámetro utilizando la etiqueta {{schema.type}}/{{schema.format}}.

    Una vez que hayas creado esta plantilla personalizada, puedes hacer referencia a ella en la configuración del complemento Maven utilizando la opción templateDirectory:

    // pom.xml
    
    <plugin>
      <groupid>org.openapitools</groupid>
      <artifactid>openapi-generator-maven-plugin</artifactid>
      <version>5.3.0</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <inputspec>${project.basedir}/target/openapi.json</inputspec>
            <generatorname>asciidoc</generatorname>
            <templatedirectory>${project.basedir}/my-templates</templatedirectory>
            <configoptions>
              <useintroduction>true</useintroduction>
            </configoptions>
            <skipvalidatespec>true</skipvalidatespec>
          </configuration>
        </execution>
      </executions>
    </plugin>
    

    Asegúrate de reemplazar ${project.basedir}/my-templates con la ruta real al directorio que contiene tu plantilla personalizada.

    Con esta configuración, el complemento openapi-generator-maven-plugin utilizará tu plantilla personalizada para generar la documentación AsciiDoc, que incluirá el esquema y el tipo de cada parámetro en lugar de la columna “Pattern”.

Comments are closed.