diff --git a/protoc-gen-openapiv2/internal/genopenapi/template.go b/protoc-gen-openapiv2/internal/genopenapi/template.go index 3a3f539561a..09a3be23560 100644 --- a/protoc-gen-openapiv2/internal/genopenapi/template.go +++ b/protoc-gen-openapiv2/internal/genopenapi/template.go @@ -522,13 +522,16 @@ func renderMessageAsDefinition(msg *descriptor.Message, reg *descriptor.Registry if fieldSchema.Ref != "" { // Per the JSON Reference syntax: Any members other than "$ref" in a JSON Reference object SHALL be ignored. // https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3 - // However, use allOf to specify Title/Description/readOnly fields. - if fieldSchema.Title != "" || fieldSchema.Description != "" || fieldSchema.ReadOnly { + // However, use allOf to specify Title/Description/Example/readOnly fields. + if fieldSchema.Title != "" || fieldSchema.Description != "" || len(fieldSchema.Example) > 0 || fieldSchema.ReadOnly { fieldSchema = openapiSchemaObject{ Title: fieldSchema.Title, Description: fieldSchema.Description, - ReadOnly: fieldSchema.ReadOnly, - AllOf: []allOfEntry{{Ref: fieldSchema.Ref}}, + schemaCore: schemaCore{ + Example: fieldSchema.Example, + }, + ReadOnly: fieldSchema.ReadOnly, + AllOf: []allOfEntry{{Ref: fieldSchema.Ref}}, } } else { fieldSchema = openapiSchemaObject{schemaCore: schemaCore{Ref: fieldSchema.Ref}}