fix(api): preserve 64-bit integer schema formats (#5908)

Co-authored-by: sanmaxdev <sanmaxdev@users.noreply.github.com>
This commit is contained in:
Sangeeth Thilakarathna
2026-07-12 14:28:02 +05:30
committed by GitHub
parent 814cda3fb4
commit 2c95e29297
5 changed files with 113 additions and 3 deletions
+5 -1
View File
@@ -97,7 +97,11 @@ func (g *schemaGen) typeSchema(t TypeRef) map[string]any {
}
return map[string]any{"type": "string"}
case KindInt:
return map[string]any{"type": "integer"}
sch := map[string]any{"type": "integer"}
if t.Name == "int64" {
sch["format"] = "int64"
}
return sch
case KindNumber:
return map[string]any{"type": "number"}
case KindBool:
+30
View File
@@ -0,0 +1,30 @@
package main
import "testing"
func TestIntegerSchemaFormats(t *testing.T) {
tests := []struct {
name string
goType string
wantFormat string
}{
{name: "int", goType: "int"},
{name: "int32", goType: "int32"},
{name: "int64", goType: "int64", wantFormat: "int64"},
{name: "uint64", goType: "uint64", wantFormat: "int64"},
}
gen := &schemaGen{}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
schema := gen.typeSchema(identType(tt.goType))
if got := schema["type"]; got != "integer" {
t.Fatalf("type = %v, want integer", got)
}
got, _ := schema["format"].(string)
if got != tt.wantFormat {
t.Fatalf("format = %q, want %q", got, tt.wantFormat)
}
})
}
}
+4 -2
View File
@@ -197,8 +197,10 @@ func identType(name string) TypeRef {
return TypeRef{Kind: KindString}
case "bool":
return TypeRef{Kind: KindBool}
case "int", "int8", "int16", "int32", "int64",
"uint", "uint8", "uint16", "uint32", "uint64":
case "int64", "uint64":
return TypeRef{Kind: KindInt, Name: "int64"}
case "int", "int8", "int16", "int32",
"uint", "uint8", "uint16", "uint32":
return TypeRef{Kind: KindInt}
case "float32", "float64":
return TypeRef{Kind: KindNumber}