gf icon indicating copy to clipboard operation
gf copied to clipboard

[BUG] When setting the `required` tag in the gjson type field in the request or response struct (req/res), OpenAPI cannot generate the required identifier.

Open shuqingzai opened this issue 2 years ago • 6 comments

如下,Rgba 字段设置了 required ,文档未体现必须标识, Color 可以体现

// ColorsSaveReq 颜色 - 保存(创建/更新) - 请求
type ColorsSaveReq struct {
	g.Meta `path:"/demo/colors" method:"POST" summary:"颜色 - 保存" tags:"颜色管理" description:"颜色 - 保存"`

	// ID ID
	ID uint64 `json:"id,string" dc:"ID" v:"id-zero"`
	// Color 颜色值16进制表示法
	Color string `json:"color" dc:"颜色值16进制表示法" v:"required|max-length:10"`
	// Rgba 颜色值RGBA表示法
	Rgba *gjson.Json `json:"rgba" dc:"颜色值RGBA表示法" v:"required|json"`
}

生成的文档参考:

image

1. What version of Go and system type/arch are you using?

# -> % go version
go version go1.21.3 darwin/amd64

2. What version of GoFrame are you using?

# -> % gf version
GoFrame CLI Tool v2.5.6, https://goframe.org
GoFrame Version: v2.5.6 in current go.mod

3. Can this issue be re-produced with the latest release?

是的

4. What did you do?

5. What did you expect to see?

6. What did you see instead?

shuqingzai avatar Nov 06 '23 10:11 shuqingzai

Required param doesn't support struct type. You can view docs for further assistance. docs

Required 不支持结构体类型,可以详阅一下文档 docs

oldme-git avatar Nov 08 '23 01:11 oldme-git

Required param doesn't support struct type. You can view docs for further assistance. docs

Required 不支持结构体类型,可以详阅一下文档 docs

@oldme-git 所以才反馈问题呀,可以支持的吧,而且写了注释也没有显示

image

shuqingzai avatar Nov 08 '23 02:11 shuqingzai

@shuqingzai gjson.json 是一个结构体类型,GoFrame 支持嵌套结构体数据校检,可以查看此处文档了解 docs

gjson.json is a struct type. GoFrame supports validate for embedding of structs.

oldme-git avatar Nov 08 '23 05:11 oldme-git

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑‍🤝‍🧑👫🧑🏿‍🤝‍🧑🏻👩🏾‍🤝‍👨🏿👬🏿


@shuqingzai gjson.json is a structure type. GoFrame supports nested structure data checking. You can check the document here to learn more [docs](https://goframe.org/pages/viewpage.action?pageId=7302150#Struct %E6%A0%A1%E9%AA%8C%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8-%E7%BB%93%E6%9E%84% E4%BD%93%E9%80%92%E5%BD%92%E6%A0%A1%E9%AA%8C%EF%BC%88%E5%B5%8C%E5%A5%97%E6% A0%A1%E9%AA%8C%EF%BC%89)

Issues-translate-bot avatar Nov 08 '23 05:11 Issues-translate-bot

@shuqingzai gjson.json 是一个结构体类型,GoFrame 支持嵌套结构体数据校检,可以查看此处文档了解 docs

gjson.json is a struct type. GoFrame supports validate for embedding of structs.

@oldme-git

你说的与本话题有差异,虽然我知道 GF 底层生成文档时,是否必填是使用 v 相关标签可以指定,但是我已经明确指定为:required ,即使在数据验证时,不支持验证是否为空,但是文档上也可以体现吧,或者加个 OpenAPI 标签,因为我尝试在字段上加 required="true" 也是无效的,还有就是如果是结构体,文档中的描述也被丢弃,也是有问题吧

shuqingzai avatar Nov 08 '23 06:11 shuqingzai

@shuqingzai gjson.json 是一个结构体类型,GoFrame 支持嵌套结构体数据校检,可以查看此处文档了解 docs gjson.json is a struct type. GoFrame supports validate for embedding of structs.

@oldme-git

你说的与本话题有差异,虽然我知道 GF 底层生成文档时,是否必填是使用 v 相关标签可以指定,但是我已经明确指定为:required ,即使在数据验证时,不支持验证是否为空,但是文档上也可以体现吧,或者加个 OpenAPI 标签,因为我尝试在字段上加 required="true" 也是无效的,还有就是如果是结构体,文档中的描述也被丢弃,也是有问题吧

我也觉得文档上应该生成required这个规则,用来提示这个是必须参数,具体验证的时候,不支持的时候可以忽略掉即可

wln32 avatar Apr 08 '24 03:04 wln32