gnostic icon indicating copy to clipboard operation
gnostic copied to clipboard

[bug] OpenAPI 3: schema items - Value MUST be an object and not an array

Open zaakn opened this issue 1 year ago • 0 comments

Related to https://github.com/google/gnostic/issues/83, https://github.com/google/gnostic/pull/84

After the PR was merged, it was rolled back in this commit: https://github.com/google/gnostic/commit/540b24903cf26557fb13493cb9a43804da98461a#diff-38bb6d02d3442ac95d8613ef4fed0b1cb70f7bc2001d1abe71bafbede04a0dd1

 - SchemaOrReference items = 30;
 + ItemsItem items = 30;

As the comments in the latest code say, I also agree that the wrong model is being used. https://github.com/google/gnostic/blob/ad271d568b713ad381ad6751cd8b950eade78d98/surface/model_openapiv3.go#L386-L397

Using the protoc-gen-openapi:

message Foobar {
	repeated string domains = 1 [
		(openapi.v3.property).items.schema_or_reference = {
			schema: {
				format: "hostname";
			}
		}
	];
}

output OpenAPI yaml:

Foobar:
    type: object
    properties:
        domains:
            type: array
            items:
                - type: string
                - format: hostname

Expected:

Foobar:
    type: object
    properties:
        domains:
            type: array
            items:
                type: string
                format: hostname

zaakn avatar Mar 23 '24 11:03 zaakn