@@ -248,13 +248,13 @@ private void setResponseBodies( final Aspect aspect, final ObjectNode jsonNode,
248
248
final ObjectNode componentsResponseNode = (ObjectNode ) jsonNode .get ( FIELD_COMPONENTS ).get ( FIELD_RESPONSES );
249
249
final ObjectNode referenceNode = FACTORY .objectNode ()
250
250
.put ( REF , COMPONENTS_SCHEMAS + ( includePaging ? FIELD_PAGING_SCHEMA : aspect .getName () ) );
251
- final ObjectNode contentNode = getApplicationNode ( referenceNode );
251
+ final ObjectNode contentNode = getApplicationNode ( referenceNode , false );
252
252
componentsResponseNode .set ( aspect .getName (), contentNode );
253
253
contentNode .put ( FIELD_DESCRIPTION , "The request was successful." );
254
254
if ( !aspect .getOperations ().isEmpty () ) {
255
255
final ObjectNode operationResponseNode = FACTORY .objectNode ()
256
256
.put ( REF , COMPONENTS_SCHEMAS + FIELD_OPERATION_RESPONSE );
257
- final ObjectNode wrappedOperationNode = getApplicationNode ( operationResponseNode );
257
+ final ObjectNode wrappedOperationNode = getApplicationNode ( operationResponseNode , false );
258
258
componentsResponseNode .set ( FIELD_OPERATION_RESPONSE , wrappedOperationNode );
259
259
wrappedOperationNode .put ( FIELD_DESCRIPTION , "The request was successful." );
260
260
}
@@ -265,21 +265,24 @@ private void setRequestBodies( final Aspect aspect, final OpenApiSchemaGeneratio
265
265
final ObjectNode requestBodies = FACTORY .objectNode ();
266
266
componentNode .set ( FIELD_REQUEST_BODIES , requestBodies );
267
267
requestBodies .set ( aspect .getName (),
268
- getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + aspect .getName () ) ) );
268
+ getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + aspect .getName () ), true ) );
269
269
if ( config .includeQueryApi () ) {
270
270
requestBodies .set ( FIELD_FILTER ,
271
- getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + FIELD_FILTER ) ) );
271
+ getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + FIELD_FILTER ), true ) );
272
272
}
273
273
if ( !aspect .getOperations ().isEmpty () ) {
274
274
requestBodies .set ( FIELD_OPERATION ,
275
- getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + FIELD_OPERATION ) ) );
275
+ getApplicationNode ( FACTORY .objectNode ().put ( REF , COMPONENTS_SCHEMAS + FIELD_OPERATION ), true ) );
276
276
}
277
277
}
278
278
279
- private ObjectNode getApplicationNode ( final ObjectNode contentNode ) {
280
- return FACTORY .objectNode ().set ( FIELD_CONTENT ,
281
- FACTORY .objectNode ().set ( APPLICATION_JSON ,
282
- FACTORY .objectNode ().set ( FIELD_SCHEMA , contentNode ) ) );
279
+ private ObjectNode getApplicationNode ( final ObjectNode contentNode , final boolean addRequired ) {
280
+ final ObjectNode result = FACTORY .objectNode ();
281
+ result .set ( FIELD_CONTENT , FACTORY .objectNode ().set ( APPLICATION_JSON , FACTORY .objectNode ().set ( FIELD_SCHEMA , contentNode ) ) );
282
+ if ( addRequired ) {
283
+ result .put ( FIELD_REQUIRED , true );
284
+ }
285
+ return result ;
283
286
}
284
287
285
288
private void setAspectSchemas ( final Aspect aspect , final OpenApiSchemaGenerationConfig config , final ObjectNode jsonNode ) {
@@ -503,7 +506,10 @@ private ObjectNode getRequestEndpointsUpdate( final Aspect aspect, final ObjectN
503
506
objectNode .set ( "tags" , FACTORY .arrayNode ().add ( aspect .getName () ) );
504
507
objectNode .put ( FIELD_OPERATION_ID , ( isPut ? FIELD_PUT : FIELD_PATCH ) + aspect .getName () );
505
508
objectNode .set ( FIELD_PARAMETERS , getRequiredParameters ( parameterNode , isEmpty ( resourcePath ) ) );
506
- objectNode .set ( FIELD_REQUEST_BODY , FACTORY .objectNode ().put ( REF , COMPONENTS_REQUESTS + aspect .getName () ) );
509
+ final ObjectNode requestBody = FACTORY .objectNode ();
510
+ requestBody .put ( FIELD_REQUIRED , true );
511
+ requestBody .put ( REF , COMPONENTS_REQUESTS + aspect .getName () );
512
+ objectNode .set ( FIELD_REQUEST_BODY , requestBody );
507
513
objectNode .set ( FIELD_RESPONSES , getResponsesForGet ( aspect ) );
508
514
return objectNode ;
509
515
}
0 commit comments