[Bug]: `@encode(string)` int64 default becomes `null`, and numeric examples ignore the encoding
Los mantenedores suelen responder en 1 dí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
- openapi
- Área
- api
Línea de trabajo
Comienza en packages/compiler/src/lib/examples.ts y lee serializeValueAsJson, centrándote en su tratamiento de NumericValue y en el @encode resuelto de la propiedad. Reproduce el modelo Account proporcionado e inspecciona la salida de OpenAPI en busca de valores predeterminados y ejemplos. La tarea está terminada cuando los valores int64 y decimal codificados se emiten como cadenas, incluido el valor predeterminado int64 grande, en lugar de null o números JSON.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
With @encode(string) id: int64 = 9007199254740993, the OpenAPI output has "default": null, so the value is lost. Other defaults and @example values on @encode(string) int64 and decimal properties come out as JSON numbers, which don't match the type: string next to them.
serializeValueAsJson in packages/compiler/src/lib/examples.ts already resolves the property's @encode, but the NumericValue case returns asNumber() without checking it, and asNumber() gives null when a JS number can't hold the value exactly. Dates and durations already use the encoding in that function (#11731 fixed the milliseconds case). Happy to send a PR.
Reproduction
@example(#{ id: 42, balance: 1050.25 })
model Account {
@encode(string) id: int64 = 9007199254740993;
@encode(string) balance: decimal = 0;
}
OpenAPI 3.0.0 output on current main. 3.1.0 and 3.2.0 give the same defaults.
"properties": {
"id": { "type": "string", "format": "int64", "default": null },
"balance": { "type": "string", "format": "decimal", "default": 0 }
},
"example": { "id": 42, "balance": 1050.25 }
Expected "9007199254740993" and "0" for the defaults, and { "id": "42", "balance": "1050.25" } for the example.
- Lenguaje dominante
- Java
- Estrellas
- 5.9k
- Forks
- 404
- Merge medio
- 2 d 2 h
- PR fusionados (30 d)
- 134
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 microsoft/typespec
-
Http-client-js operation response on the client doesn't carry the return typePosiblemente ocupada @reginaldalfret la tomó hace 17 días. Abiertoemitter:client:js
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/typespec#11853 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: @terminalEvent on a model-payload variant emits an unconstrained oneOf branch in OpenAPI 3.2 SSE outputPosiblemente ocupada @Shubham-Padkonde la tomó hace 28 días. Abiertobug emitter:openapi3 triaged:core
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
microsoft/typespec#11747 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: [http-server-csharp] Model with a `Record<unknown>[]` property generates C# that does not compile (missing `using System.Text.Json.Nodes;`)Quizá libre de nuevo @nightcityblade la tomó hace 48 días y no hay ningún pull request abierto. Abiertobug emitter:service:csharp triaged:core
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/typespec#11733 · 2 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
emitter:client:java feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/typespec#11076 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertoemitter:client:js
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/typespec#10264 · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/typespec
Issues similares
-
enhancement Improvement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
zowe/zowe-client-java-sdk#647 ·
-
NullPointerException when a `DeserializationProblemHandler` returns `null` for `byte[]` (single value unwrapped) and `char[]` elementsPosiblemente ocupada @Marti2203 la tomó hoy. Abierto
Dificultad 2/5 Medio día Aptitud para principiantes 88/100
FasterXML/jackson-databind#6300 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
MustacheCase/zanadir#254 ·
Los mantenedores suelen responder en 1 día
-
content good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
cpinitiative/usaco-guide#6699 ·
Los mantenedores suelen responder en 1 día
-
BC remittance upload: a claim MSP refused (S03) is saved with a blank status instead of refused (F)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
carlos-emr/carlos#4933 ·
Los mantenedores suelen responder en 1 día