diff --git a/openapi3/internalize_refs.go b/openapi3/internalize_refs.go index 3a993bfb4..3a6cabb1a 100644 --- a/openapi3/internalize_refs.go +++ b/openapi3/internalize_refs.go @@ -286,6 +286,10 @@ func (doc *T) derefPaths(paths map[string]*PathItem, refNameResolver RefNameReso // inline full operations ops.Ref = "" + for _, param := range ops.Parameters { + doc.addParameterToSpec(param, refNameResolver) + } + for _, op := range ops.Operations() { doc.addRequestBodyToSpec(op.RequestBody, refNameResolver) if op.RequestBody != nil && op.RequestBody.Value != nil { diff --git a/openapi3/testdata/recursiveRef/parameters/number.yml b/openapi3/testdata/recursiveRef/parameters/number.yml new file mode 100644 index 000000000..29f0f2640 --- /dev/null +++ b/openapi3/testdata/recursiveRef/parameters/number.yml @@ -0,0 +1,4 @@ +name: someNumber +in: query +schema: + type: string diff --git a/openapi3/testdata/recursiveRef/paths/foo.yml b/openapi3/testdata/recursiveRef/paths/foo.yml index 1653c7ac7..43e03b7ab 100644 --- a/openapi3/testdata/recursiveRef/paths/foo.yml +++ b/openapi3/testdata/recursiveRef/paths/foo.yml @@ -1,3 +1,5 @@ +parameters: + - $ref: ../parameters/number.yml get: responses: "200":