Skip to content

Commit

Permalink
feat(protoc-gen-openapi): support query field behavior with required
Browse files Browse the repository at this point in the history
  • Loading branch information
Ccheers committed Apr 17, 2024
1 parent ad271d5 commit 9dc90b7
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
Expand Up @@ -261,6 +261,7 @@ paths:
- name: name
in: query
description: The name of the book to update.
required: true
schema:
type: string
requestBody:
Expand Down
26 changes: 20 additions & 6 deletions cmd/protoc-gen-openapi/generator/generator.go
Expand Up @@ -293,6 +293,20 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
queryFieldName := g.reflect.formatFieldName(field.Desc)
fieldDescription := g.filterCommentString(field.Comments.Leading)

required := false
extension := proto.GetExtension(field.Desc.Options(), annotations.E_FieldBehavior)
if extension != nil {
fieldBehaviors, ok := extension.([]annotations.FieldBehavior)
if ok {
for _, fieldBehavior := range fieldBehaviors {
if fieldBehavior == annotations.FieldBehavior_REQUIRED {
required = true
break
}
}
}
}

if field.Desc.IsMap() {
// Map types are not allowed in query parameteres
return parameters
Expand All @@ -310,7 +324,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand All @@ -329,7 +343,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand All @@ -345,7 +359,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand All @@ -360,7 +374,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand All @@ -383,7 +397,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand Down Expand Up @@ -423,7 +437,7 @@ func (g *OpenAPIv3Generator) _buildQueryParamsV3(field *protogen.Field, depths m
Name: queryFieldName,
In: "query",
Description: fieldDescription,
Required: false,
Required: required,
Schema: fieldSchema,
},
},
Expand Down

0 comments on commit 9dc90b7

Please sign in to comment.