[JAVA] Enum field with default generated incorrectly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con el openapi.json enlazado y reproduce el problema usando el comando mostrado de generación de Java de swagger-codegen-cli. Rastrea cómo se representa el valor predeterminado del estado del modelo Task en la clase Java generada y, a continuación, verifica que el código generado use la constante del enum TaskStatus y compile correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
I have a fastapi defined interface with a enum (TaskStatus) and a structure (Task) containing an instance of that enum with a default.
I extract the openapi.json from the running fastapi using wget.
Then I generate the Java client code using swagger codegen.
The enum is generated just fine, but the default value in the object is missing the Enum type. I'm wondering if I'm missing something I need to add to the fastapi main.py or the generated openapi.json.
main.py:
from typing import Union
from enum import Enum
from pydantic import BaseModel
from fastapi import FastAPI
app = FastAPI()
class TaskStatus(str,Enum):
NIL = "NIL"
NOT_APPROVED = "NOT_APPROVED"
NOT_READY = "NOT_READY"
NOT_ASSIGNED = "NOT_ASSIGNED"
PENDING = "PENDING"
EXECUTING = "EXECUTING"
DONE = "DONE"
class Task(BaseModel):
'''Base class for tasks'''
task_id: int = -1
'''ID of the task'''
status: TaskStatus = TaskStatus.NOT_ASSIGNED
'''Status of task to be tracked throughout runtime'''
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/task/{task_id}")
def read_task(task_id: int ) -> Task:
task = Task( id = task_id )
return task
generated java enum:
public enum TaskStatus {
NIL("NIL"),
NOT_APPROVED("NOT_APPROVED"),
NOT_READY("NOT_READY"),
NOT_ASSIGNED("NOT_ASSIGNED"),
PENDING("PENDING"),
EXECUTING("EXECUTING"),
DONE("DONE");
INVALID generated java Task class - enum default value should be TaskStatus.NOT_ASSIGNED:
public class Task {
@JsonProperty("task_id")
private Object taskId = -1;
@JsonProperty("status")
private TaskStatus status = NOT_ASSIGNED;
Swagger-codegen version
swagger-codegen-cli-3.0.61.jar
Swagger declaration file content or url
snip:
{
....
"/task/{task_id}": {
"get": {
"summary": "Read Task",
"operationId": "read_task_task__task_id__get",
"parameters": [{
"name": "task_id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"title": "Task Id"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Task"
}
...
},
"components": {
"schemas": {
...
"Task": {
"properties": {
"task_id": {
"type": "integer",
"title": "Task Id",
"default": -1
},
"status": {
"$ref": "#/components/schemas/TaskStatus",
"default": "NOT_ASSIGNED"
}
},
"type": "object",
"title": "Task",
"description": "Base class for tasks"
},
"TaskStatus": {
"type": "string",
"enum": ["NIL", "NOT_APPROVED", "NOT_READY", "NOT_ASSIGNED", "PENDING", "EXECUTING", "DONE"],
"title": "TaskStatus"
},
Command line used for generation
wget http://127.0.0.1:8000/openapi.json
java -jar swagger-codegen-cli-3.0.61.jar generate -l java -i openapi.json -Dlibrary=jersey1,hideGenerationTimestamp=true -o java-jersey1
Steps to reproduce
regenerate the code with the linked openapi.json
Maybe I'm missing something somewhere?
- Lenguaje dominante
- Mustache
- Estrellas
- 17.8k
- Forks
- 6k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de swagger-api/swagger-codegen
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
swagger-api/swagger-codegen#12755 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
swagger-api/swagger-codegen#12445 ·
-
security vulnerability
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
swagger-api/swagger-codegen#11942 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
swagger-api/swagger-codegen#11812 · 1 reacción ·
-
security vulnerability
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
swagger-api/swagger-codegen#11594 ·
Todos los issues de swagger-api/swagger-codegen
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
external-issue to-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
googleapis/google-cloud-swift#1151 ·
-
SqliteSaver.list(filter=...) silently misses nested metadata values containing non-ASCII text Abiertoexternal
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
langchain-ai/langgraph#9074 · 1 comentario ·
-
documentation specification
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
openai/openai-openapi#584 ·