diff --git a/bin/html2-petstore.sh b/bin/html2-petstore.sh
index 3b82165d1034..d125551e1332 100755
--- a/bin/html2-petstore.sh
+++ b/bin/html2-petstore.sh
@@ -27,6 +27,6 @@ fi
# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
-ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g html2 -o samples/documentation/html2 --additional-properties hideGenerationTimestamp=true $@"
+ags="generate -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g html2 -o samples/documentation/html2 -t modules/openapi-generator/src/main/resources/htmlDocs2/ --additional-properties hideGenerationTimestamp=true $@"
java $JAVA_OPTS -jar $executable $ags
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index d75476aa29a6..e6a75981b7f0 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -5543,6 +5543,8 @@ public CodegenParameter fromRequestBody(RequestBody body, Set imports, S
setParameterNullable(codegenParameter, codegenProperty);
}
+ addJsonSchemaForBodyRequestInCaseItsNotPresent(codegenParameter, body);
+
// set the parameter's example value
// should be overridden by lang codegen
setParameterExampleValue(codegenParameter, body);
@@ -5550,6 +5552,11 @@ public CodegenParameter fromRequestBody(RequestBody body, Set imports, S
return codegenParameter;
}
+ private void addJsonSchemaForBodyRequestInCaseItsNotPresent(CodegenParameter codegenParameter, RequestBody body){
+ if(codegenParameter.jsonSchema == null)
+ codegenParameter.jsonSchema = Json.pretty(body);
+ }
+
protected void addOption(String key, String description, String defaultValue) {
CliOption option = new CliOption(key, description);
if (defaultValue != null)
diff --git a/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache b/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
index 1cb04a58a9f9..e82cd10725d7 100644
--- a/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
+++ b/modules/openapi-generator/src/main/resources/htmlDocs2/index.mustache
@@ -101,6 +101,31 @@
//Convert elements with "marked" class to markdown
processMarked();
});
+
+ function findNode(id, currentNode) {
+ return (Object.keys(currentNode)[0] === id) ? currentNode : findNodeInChildren(id, currentNode);
+ }
+
+ function findNodeInChildren(id, currentNode) {
+ for (let prop in currentNode) {
+ if (currentNode.hasOwnProperty(prop)) {
+ let currentChild = currentNode[prop];
+ if (id === prop) {
+ return currentChild;
+ } else {
+ // Search in the current child
+ if (typeof (currentChild) === 'object') {
+ let result = findNode(id, currentChild);
+ if (result !== false) {
+ return result;
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+