[Bug]: `@encode(string)` int64 default becomes `null`, and numeric examples ignore the encoding
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- openapi
- Ambito
- api
Direzione di ricerca
Inizia da packages/compiler/src/lib/examples.ts e leggi serializeValueAsJson, concentrandoti sulla gestione di NumericValue e sull'@encode risolto della proprietà. Riproduci il modello Account fornito e ispeziona l'output OpenAPI per i valori predefiniti e gli esempi. Il lavoro è completato quando i valori int64 e decimal codificati vengono emessi come stringhe, incluso il grande valore predefinito int64, anziché come null o numeri JSON.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 5.9k
- Fork
- 403
- Merge medio
- 3g 11h
- PR unite (30g)
- 96
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/typespec
-
Http-client-js operation response on the client doesn't carry the return typeForse già presa @reginaldalfret l’ha presa 10 giorni fa. Apertaemitter:client:js
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/typespec#11853 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: @terminalEvent on a model-payload variant emits an unconstrained oneOf branch in OpenAPI 3.2 SSE outputForse già presa @Shubham-Padkonde l’ha presa 21 giorni fa. Apertabug emitter:openapi3 triaged:core
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/typespec#11747 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: [http-server-csharp] Model with a `Record<unknown>[]` property generates C# that does not compile (missing `using System.Text.Json.Nodes;`)Forse di nuovo libera @nightcityblade l’ha presa 40 giorni fa e non c’è nessuna pull request aperta. Apertabug emitter:service:csharp triaged:core
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/typespec#11733 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
emitter:client:java feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/typespec#11076 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaemitter:client:js
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
microsoft/typespec#10264 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/typespec
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
utopia-rise/godot-jvm#1004 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
spring-projects/spring-grpc#442 ·
-
Expose numberOfPermits in RateLimiterEvent.toString() and the ratelimiterevents actuator DTOForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
resilience4j/resilience4j#2547 ·
I maintainer di solito rispondono entro 9 giorni
-
Clock.MakeDate continues execution and returns a rolled-over instant after dispatching error on invalid dateForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
mit-cml/appinventor-sources#4155 ·
I maintainer di solito rispondono entro 1 giorno