mirror of
https://github.com/zeromicro/go-zero.git
synced 2026-05-14 02:10:00 +08:00
fix: the parameter "required" in the Swagger document generated for repair is incorrect (#4791)
This commit is contained in:
@@ -238,16 +238,37 @@ func rangeMemberAndDo(structType apiSpec.Type, do func(tag *apiSpec.Tags, requir
|
|||||||
var members = expandMembers(structType)
|
var members = expandMembers(structType)
|
||||||
|
|
||||||
for _, field := range members {
|
for _, field := range members {
|
||||||
var required = false
|
|
||||||
for _, t := range field.Tags() {
|
|
||||||
required = len(t.Options) > 0 && t.Options[0] != "optional"
|
|
||||||
}
|
|
||||||
tags, _ := apiSpec.Parse(field.Tag)
|
tags, _ := apiSpec.Parse(field.Tag)
|
||||||
|
required := isRequired(tags)
|
||||||
do(tags, required, field)
|
do(tags, required, field)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isRequired(tags *apiSpec.Tags) bool {
|
||||||
|
tag, err := tags.Get(tagJson)
|
||||||
|
if err == nil {
|
||||||
|
return !isOptional(tag.Options)
|
||||||
|
}
|
||||||
|
tag, err = tags.Get(tagForm)
|
||||||
|
if err == nil {
|
||||||
|
return !isOptional(tag.Options)
|
||||||
|
}
|
||||||
|
tag, err = tags.Get(tagPath)
|
||||||
|
if err == nil {
|
||||||
|
return !isOptional(tag.Options)
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func isOptional(options []string) bool {
|
||||||
|
for _, option := range options {
|
||||||
|
if option == "optional" {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func pathVariable2SwaggerVariable(path string) string {
|
func pathVariable2SwaggerVariable(path string) string {
|
||||||
pathItems := strings.FieldsFunc(path, slashRune)
|
pathItems := strings.FieldsFunc(path, slashRune)
|
||||||
var resp []string
|
var resp []string
|
||||||
|
|||||||
Reference in New Issue
Block a user