@@ -134,29 +134,14 @@ public void resolveFully(OpenAPI openAPI) {
134134 }
135135
136136 public void resolvePath (PathItem pathItem ){
137+ if (pathItem .getParameters () != null ) {
138+ pathItem .setParameters (mapToResolvedParameters (pathItem .getParameters ()));
139+ }
140+
137141 for (Operation op : pathItem .readOperations ()) {
138142 // inputs
139143 if (op .getParameters () != null ) {
140- for (Parameter parameter : op .getParameters ()) {
141- parameter = parameter .get$ref () != null ? resolveParameter (parameter ) : parameter ;
142- if (parameter .getSchema () != null ) {
143- Schema resolved = resolveSchema (parameter .getSchema ());
144- if (resolved != null ) {
145- parameter .setSchema (resolved );
146- }
147- }
148- if (parameter .getContent () != null ){
149- Map <String ,MediaType > content = parameter .getContent ();
150- for (String key : content .keySet ()){
151- if (content .get (key ) != null && content .get (key ).getSchema () != null ){
152- Schema resolvedSchema = resolveSchema (content .get (key ).getSchema ());
153- if (resolvedSchema != null ) {
154- content .get (key ).setSchema (resolvedSchema );
155- }
156- }
157- }
158- }
159- }
144+ op .setParameters (mapToResolvedParameters (op .getParameters ()));
160145 }
161146
162147 if (op .getCallbacks () != null ){
@@ -232,6 +217,33 @@ public void resolvePath(PathItem pathItem){
232217 }
233218 }
234219
220+ private List <Parameter > mapToResolvedParameters (List <Parameter > rawParameters ) {
221+ List <Parameter > resolvedParameters = new ArrayList <>();
222+ for (Parameter parameter : rawParameters ) {
223+ parameter = parameter .get$ref () != null ? resolveParameter (parameter ) : parameter ;
224+ if (parameter .getSchema () != null ) {
225+ Schema resolved = resolveSchema (parameter .getSchema ());
226+ if (resolved != null ) {
227+ parameter .setSchema (resolved );
228+ }
229+ }
230+ if (parameter .getContent () != null ) {
231+ Map <String , MediaType > content = parameter .getContent ();
232+ for (String key : content .keySet ()) {
233+ if (content .get (key ) != null && content .get (key ).getSchema () != null ) {
234+ Schema resolvedSchema = resolveSchema (content .get (key ).getSchema ());
235+ if (resolvedSchema != null ) {
236+ content .get (key ).setSchema (resolvedSchema );
237+ }
238+ }
239+ }
240+ }
241+ resolvedParameters .add (parameter );
242+ }
243+
244+ return resolvedParameters ;
245+ }
246+
235247 private void resolveHeaders (Map <String , Header > headers ) {
236248 if (headers == null || headers .isEmpty ()) {
237249 return ;
0 commit comments