Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[BUG] ExampleGenerator.generateFromResponseSchema treats the keys of an inline object `example` (java.util.Map) as media types

Abierto Apto para principiantes
#25,236 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java

Línea de trabajo

Empieza en ExampleGenerator.generateFromResponseSchema(Schema, Set) y sigue cómo un ejemplo de esquema inline que no es null llega a las sobrecargas de generate. Revisa las pruebas existentes para ejemplos de esquemas de respuesta y añade cobertura para un ejemplo de Map de Java con application/json como tipo de medio producido. La tarea está terminada cuando el mapa se emite como un único ejemplo bajo ese tipo de medio, en lugar de tratar sus claves como tipos de medio.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bug Report Checklist
  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
Description

When generateFromResponseSchema(statusCode, schema, produces) gets an inline (non-$ref, non-array) schema whose example is a java.util.Map, the "primitive type" branch casts the example to Map<String, Object> and passes it as the examples argument of generate(Map, List, Schema). That argument means {mediaType -> example}, so every key of the example becomes a contentType and every value becomes a separate example:

Schema<Object> response = new ObjectSchema()
        .addProperty("id", new IntegerSchema())
        .addProperty("name", new StringSchema());
response.setExample(Map.of("id", 1, "name", "Rex"));

new ExampleGenerator(Map.of(), new OpenAPI())
        .generateFromResponseSchema("200", response, Set.of("application/json"));
// actual:   [{contentType=name, example="Rex", statusCode=200}, {contentType=id, example=1, statusCode=200}]
// expected: [{contentType=application/json, example={"id":1,"name":"Rex"}, statusCode=200}]

When the spec is read from a file, swagger-parser gives the example as a Jackson ObjectNode, not a Map, so the CLI does not hit this path. It affects programmatic use, such as custom generators or tools that build or transform the OpenAPI model with plain Java maps.

openapi-generator version

7.25.0 (also current master).

Suggest a fix

In generateFromResponseSchema(Schema, Set), handle any non-null example (including Map) through generate(Object, List), and use the generate(Map, ...) overloads only for the media-type map.

Lenguaje dominante
Java
Estrellas
26.8k
Forks
7.7k
Merge medio
1 d 12 h
PR fusionados (30 d)
141

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenAPITools/openapi-generator

Todos los issues de OpenAPITools/openapi-generator

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.