@@ -350,38 +350,98 @@ private void addPathItemSchemaRef(PathItem pathItem, Set<String> referencedDefin
350
350
Map <PathItem .HttpMethod , Operation > ops = pathItem .readOperationsMap ();
351
351
for (Operation op : ops .values ()) {
352
352
if (op .getRequestBody () != null ) {
353
- addContentSchemaRef (op .getRequestBody (). getContent (), referencedDefinitions );
353
+ addRequestBodySchemaRef (op .getRequestBody (), referencedDefinitions );
354
354
}
355
355
if (op .getResponses () != null ) {
356
356
for (String keyResponses : op .getResponses ().keySet ()) {
357
357
ApiResponse response = op .getResponses ().get (keyResponses );
358
- if (response .getHeaders () != null ) {
359
- for (String keyHeaders : response .getHeaders ().keySet ()) {
360
- Header header = response .getHeaders ().get (keyHeaders );
361
- addSchemaRef (header .getSchema (), referencedDefinitions );
362
- addContentSchemaRef (header .getContent (), referencedDefinitions );
363
- }
364
- }
365
- addContentSchemaRef (response .getContent (), referencedDefinitions );
358
+ addApiResponseSchemaRef (response , referencedDefinitions );
366
359
}
367
360
}
368
361
if (op .getParameters () != null ) {
369
362
for (Parameter parameter : op .getParameters ()) {
370
- addSchemaRef (parameter .getSchema (), referencedDefinitions );
371
- addContentSchemaRef (parameter .getContent (), referencedDefinitions );
363
+ addParameterSchemaRef (parameter , referencedDefinitions );
372
364
}
373
365
}
374
366
if (op .getCallbacks () != null ) {
375
367
for (String keyCallback : op .getCallbacks ().keySet ()) {
376
368
Callback callback = op .getCallbacks ().get (keyCallback );
377
- for (PathItem callbackPathItem : callback .values ()) {
378
- addPathItemSchemaRef (callbackPathItem , referencedDefinitions );
379
- }
369
+ addCallbackSchemaRef (callback , referencedDefinitions );
380
370
}
381
371
}
382
372
}
383
373
}
384
374
375
+ private void addApiResponseSchemaRef (ApiResponse response , Set <String > referencedDefinitions ) {
376
+ if (response .getHeaders () != null ) {
377
+ for (String keyHeaders : response .getHeaders ().keySet ()) {
378
+ Header header = response .getHeaders ().get (keyHeaders );
379
+ addHeaderSchemaRef (header , referencedDefinitions );
380
+ }
381
+ }
382
+ addContentSchemaRef (response .getContent (), referencedDefinitions );
383
+ }
384
+
385
+ private void addRequestBodySchemaRef (RequestBody requestBody , Set <String > referencedDefinitions ) {
386
+ addContentSchemaRef (requestBody .getContent (), referencedDefinitions );
387
+ }
388
+
389
+ private void addParameterSchemaRef (Parameter parameter , Set <String > referencedDefinitions ) {
390
+ addSchemaRef (parameter .getSchema (), referencedDefinitions );
391
+ addContentSchemaRef (parameter .getContent (), referencedDefinitions );
392
+ }
393
+
394
+ private void addHeaderSchemaRef (Header header , Set <String > referencedDefinitions ) {
395
+ addSchemaRef (header .getSchema (), referencedDefinitions );
396
+ addContentSchemaRef (header .getContent (), referencedDefinitions );
397
+ }
398
+
399
+ private void addCallbackSchemaRef (Callback callback , Set <String > referencedDefinitions ){
400
+ for (PathItem callbackPathItem : callback .values ()) {
401
+ addPathItemSchemaRef (callbackPathItem , referencedDefinitions );
402
+ }
403
+ }
404
+
405
+ private void addComponentsSchemaRef (Components components , Set <String > referencedDefinitions ){
406
+
407
+ if (components .getResponses () != null ){
408
+ for (String resourcePath : components .getResponses ().keySet ()) {
409
+ ApiResponse apiResponse = components .getResponses ().get (resourcePath );
410
+ addApiResponseSchemaRef (apiResponse , referencedDefinitions );
411
+ }
412
+ }
413
+ if (components .getRequestBodies () != null ){
414
+ for (String requestBody : components .getRequestBodies ().keySet ()) {
415
+ RequestBody requestBody1 = components .getRequestBodies ().get (requestBody );
416
+ addRequestBodySchemaRef (requestBody1 , referencedDefinitions );
417
+ }
418
+ }
419
+ if (components .getParameters () != null ){
420
+ for (String parameter : components .getParameters ().keySet ()) {
421
+ Parameter resourceParam = components .getParameters ().get (parameter );
422
+ addParameterSchemaRef (resourceParam , referencedDefinitions );
423
+ }
424
+ }
425
+ if (components .getHeaders () != null ){
426
+ for (String header : components .getHeaders ().keySet ()) {
427
+ Header resourceHeader = components .getHeaders ().get (header );
428
+ addHeaderSchemaRef (resourceHeader , referencedDefinitions );
429
+ }
430
+ }
431
+ if (components .getCallbacks () != null ){
432
+ for (String callback : components .getCallbacks ().keySet ()){
433
+ Callback resourceCallback = components .getCallbacks ().get (callback );
434
+ addCallbackSchemaRef (resourceCallback , referencedDefinitions );
435
+ }
436
+ }
437
+ if (components .getPathItems () != null ){
438
+ for (String resourcePath : components .getPathItems ().keySet ()){
439
+ PathItem pathItem = components .getPathItems ().get (resourcePath );
440
+ addPathItemSchemaRef (pathItem , referencedDefinitions );
441
+ }
442
+ }
443
+ }
444
+
385
445
protected OpenAPI removeBrokenReferenceDefinitions (OpenAPI openApi ) {
386
446
387
447
if (openApi == null || openApi .getComponents () == null || openApi .getComponents ().getSchemas () == null ) {
@@ -395,6 +455,16 @@ protected OpenAPI removeBrokenReferenceDefinitions(OpenAPI openApi) {
395
455
addPathItemSchemaRef (pathItem , referencedDefinitions );
396
456
}
397
457
}
458
+ if (openApi .getWebhooks () != null ){
459
+ for (String resourcePath : openApi .getWebhooks ().keySet ()) {
460
+ PathItem pathItem = openApi .getWebhooks ().get (resourcePath );
461
+ addPathItemSchemaRef (pathItem , referencedDefinitions );
462
+ }
463
+ }
464
+ if (openApi .getComponents () != null ){
465
+ Components components = openApi .getComponents ();
466
+ addComponentsSchemaRef (components , referencedDefinitions );
467
+ }
398
468
399
469
referencedDefinitions .addAll (resolveAllNestedRefs (referencedDefinitions , referencedDefinitions , openApi ));
400
470
openApi .getComponents ()
0 commit comments