@@ -31,7 +31,6 @@ public OperationProcessor(ResolverCache cache, OpenAPI openAPI) {
31
31
this .responseProcessor = new ResponseProcessor (cache ,openAPI );
32
32
this .requestBodyProcessor = new RequestBodyProcessor (cache ,openAPI );
33
33
this .externalRefProcessor = new ExternalRefProcessor (cache , openAPI );
34
-
35
34
this .cache = cache ;
36
35
}
37
36
@@ -40,18 +39,30 @@ public void processOperation(Operation operation) {
40
39
if (processedOperationParameters != null ) {
41
40
operation .setParameters (processedOperationParameters );
42
41
}
43
- final RequestBody requestBody = operation .getRequestBody ();
44
- if (requestBody != null ) {
42
+
43
+ RequestBody requestBody = operation .getRequestBody ();
44
+ if (requestBody != null ) {
45
+ // This part allows paser to put requestBody inline without the resolveFully
46
+ // option set to true
47
+ if (requestBody .get$ref () != null && cache != null && cache .getParseOptions () != null && cache .getParseOptions ().isResolveRequestBody ()) {
48
+ requestBodyProcessor .processRequestBody (requestBody );
49
+ RefFormat refFormat = computeRefFormat (requestBody .get$ref ());
50
+ RequestBody resolvedRequestBody = cache .loadRef (requestBody .get$ref (), refFormat , RequestBody .class );
51
+
52
+ if (resolvedRequestBody != null ) {
53
+ requestBody = resolvedRequestBody ;
54
+ operation .setRequestBody (resolvedRequestBody );
55
+ }
56
+ }
45
57
requestBodyProcessor .processRequestBody (requestBody );
46
58
}
47
59
48
-
49
60
final Map <String , ApiResponse > responses = operation .getResponses ();
50
61
if (responses != null ) {
51
62
for (String responseCode : responses .keySet ()) {
52
63
ApiResponse response = responses .get (responseCode );
53
64
if (response != null ) {
54
- //This part allows parser to put response schema inline without the resolveFully option set to true
65
+ //This part allows parser to put response inline without the resolveFully option set to true
55
66
if (response .get$ref () != null ) {
56
67
57
68
responseProcessor .processResponse (response );
0 commit comments