Skip to content

Swagger 的 format:int64 生成为 type:string,如何设计更合理? #113

@spzgy

Description

@spzgy

前提条件:
pg 数据库, 一个字段 parent_id 类型 是 bigint

看到 sh 脚本里,故意将 integer 转成了string:
sponge web swagger --enable-standardize-response --enable-to-openapi3 --enable-integer-to-string --file=docs/apis.swagger.json > /dev/null

Swagger 文档给出的提示:
Image

实际执行结果:
Image

手动修改测试数据,将 parentID 改成 integer 类型的数据,就正常了.

我尝试用 integer 提交过,最大值和最小值, 都没有问题
"parentID": 9223372036854775807,
"parentID": -9223372036854775808,
至少手动提交大数字,没问题.

如果是考虑到前端JS 的 Number 精度丢失的问题,
那么后端 go 的 api 部分的代码, 是不是应该转一下格式,
不然报错 "invalid parameter", 而且与gRPC的格式也不匹配.

另外, 我把 swagger 的命令 改成了 "--enable-integer-to-string=false", 生成出来的文档和=true时一模一样.
翻了一下源码,好像有 bug :
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions