diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java index 75edc6b7fbd..3a0db92c5a4 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java @@ -90,6 +90,7 @@ public class CodegenParameter { output.collectionFormat = this.collectionFormat; output.isCollectionFormatMulti = this.isCollectionFormatMulti; output.description = this.description; + output.unescapedDescription = this.unescapedDescription; output.baseType = this.baseType; output.isFormParam = this.isFormParam; output.isQueryParam = this.isQueryParam; diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenProperty.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenProperty.java index 3caf46d78f6..de6ebb715f2 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenProperty.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenProperty.java @@ -11,6 +11,7 @@ public class CodegenProperty implements Cloneable { datatypeWithEnum, dataFormat, name, min, max, defaultValue, defaultValueWithParam, baseType, containerType, title; + /** The 'description' string without escape charcters needed by some programming languages/targets */ public String unescapedDescription; /** @@ -323,6 +324,6 @@ public class CodegenProperty implements Cloneable { throw new IllegalStateException(e); } } - - + + } diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java index 2045a249d97..576211f2c43 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java @@ -14,8 +14,6 @@ import static java.util.UUID.randomUUID; public class AspNetCoreServerCodegen extends AbstractCSharpCodegen { - protected String sourceFolder = "src" + File.separator + packageName; - private final String packageGuid = "{" + randomUUID().toString().toUpperCase() + "}"; @SuppressWarnings("hiding") @@ -24,6 +22,7 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen { public AspNetCoreServerCodegen() { super(); + setSourceFolder("src"); outputFolder = "generated-code" + File.separator + this.getName(); modelTemplateFiles.put("model.mustache", ".cs"); @@ -91,38 +90,53 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen { apiPackage = packageName + ".Controllers"; modelPackage = packageName + ".Models"; + String packageFolder = sourceFolder + File.separator + packageName; + supportingFiles.add(new SupportingFile("NuGet.Config", "", "NuGet.Config")); supportingFiles.add(new SupportingFile("global.json", "", "global.json")); supportingFiles.add(new SupportingFile("build.sh.mustache", "", "build.sh")); supportingFiles.add(new SupportingFile("build.bat.mustache", "", "build.bat")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); supportingFiles.add(new SupportingFile("Solution.mustache", "", this.packageName + ".sln")); - supportingFiles.add(new SupportingFile("Dockerfile.mustache", this.sourceFolder, "Dockerfile")); - supportingFiles.add(new SupportingFile("gitignore", this.sourceFolder, ".gitignore")); - supportingFiles.add(new SupportingFile("appsettings.json", this.sourceFolder, "appsettings.json")); + supportingFiles.add(new SupportingFile("Dockerfile.mustache", packageFolder, "Dockerfile")); + supportingFiles.add(new SupportingFile("gitignore", packageFolder, ".gitignore")); + supportingFiles.add(new SupportingFile("appsettings.json", packageFolder, "appsettings.json")); - supportingFiles.add(new SupportingFile("project.json.mustache", this.sourceFolder, "project.json")); - supportingFiles.add(new SupportingFile("Startup.mustache", this.sourceFolder, "Startup.cs")); - supportingFiles.add(new SupportingFile("Program.mustache", this.sourceFolder, "Program.cs")); - supportingFiles.add(new SupportingFile("web.config", this.sourceFolder, "web.config")); + supportingFiles.add(new SupportingFile("project.json.mustache", packageFolder, "project.json")); + supportingFiles.add(new SupportingFile("Startup.mustache", packageFolder, "Startup.cs")); + supportingFiles.add(new SupportingFile("Program.mustache", packageFolder, "Program.cs")); + supportingFiles.add(new SupportingFile("web.config", packageFolder, "web.config")); - supportingFiles.add(new SupportingFile("Project.xproj.mustache", this.sourceFolder, this.packageName + ".xproj")); + supportingFiles.add(new SupportingFile("Project.xproj.mustache", packageFolder, this.packageName + ".xproj")); - supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", this.sourceFolder + File.separator + "Properties", "launchSettings.json")); + supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", packageFolder + File.separator + "Properties", "launchSettings.json")); - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "README.md", this.sourceFolder + File.separator + "wwwroot", "README.md")); - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "index.html", this.sourceFolder + File.separator + "wwwroot", "index.html")); - supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "web.config", this.sourceFolder + File.separator + "wwwroot", "web.config")); + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "README.md", packageFolder + File.separator + "wwwroot", "README.md")); + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "index.html", packageFolder + File.separator + "wwwroot", "index.html")); + supportingFiles.add(new SupportingFile("wwwroot" + File.separator + "web.config", packageFolder + File.separator + "wwwroot", "web.config")); + } + + @Override + public void setSourceFolder(final String sourceFolder) { + if(sourceFolder == null) { + LOGGER.warn("No sourceFolder specified, using default"); + this.sourceFolder = "src" + File.separator + this.packageName; + } else if(!sourceFolder.equals("src") && !sourceFolder.startsWith("src")) { + LOGGER.warn("ASP.NET Core requires source code exists under src. Adjusting."); + this.sourceFolder = "src" + File.separator + sourceFolder; + } else { + this.sourceFolder = sourceFolder; + } } @Override public String apiFileFolder() { - return outputFolder + File.separator + sourceFolder + File.separator + "Controllers"; + return outputFolder + File.separator + sourceFolder + File.separator + packageName + File.separator + "Controllers"; } @Override public String modelFileFolder() { - return outputFolder + File.separator + sourceFolder + File.separator + "Models"; + return outputFolder + File.separator + sourceFolder + File.separator + packageName + File.separator + "Models"; } @Override diff --git a/modules/swagger-codegen/src/main/resources/htmlDocs/bodyParam.mustache b/modules/swagger-codegen/src/main/resources/htmlDocs/bodyParam.mustache index 9af8790a0e0..006149abf79 100644 --- a/modules/swagger-codegen/src/main/resources/htmlDocs/bodyParam.mustache +++ b/modules/swagger-codegen/src/main/resources/htmlDocs/bodyParam.mustache @@ -1,3 +1,3 @@ {{#isBodyParam}}
[ {
- "tags" : [ {
- "id" : 123456789,
- "name" : "aeiou"
- } ],
+ "photoUrls" : [ "aeiou" ],
+ "name" : "doggie",
"id" : 123456789,
"category" : {
- "id" : 123456789,
- "name" : "aeiou"
+ "name" : "aeiou",
+ "id" : 123456789
},
- "status" : "aeiou",
- "name" : "doggie",
- "photoUrls" : [ "aeiou" ]
+ "tags" : [ {
+ "name" : "aeiou",
+ "id" : 123456789
+ } ],
+ "status" : "aeiou"
} ]
[ {
- "tags" : [ {
- "id" : 123456789,
- "name" : "aeiou"
- } ],
+ "photoUrls" : [ "aeiou" ],
+ "name" : "doggie",
"id" : 123456789,
"category" : {
- "id" : 123456789,
- "name" : "aeiou"
+ "name" : "aeiou",
+ "id" : 123456789
},
- "status" : "aeiou",
- "name" : "doggie",
- "photoUrls" : [ "aeiou" ]
+ "tags" : [ {
+ "name" : "aeiou",
+ "id" : 123456789
+ } ],
+ "status" : "aeiou"
} ]
{
- "tags" : [ {
- "id" : 123456789,
- "name" : "aeiou"
- } ],
+ "photoUrls" : [ "aeiou" ],
+ "name" : "doggie",
"id" : 123456789,
"category" : {
- "id" : 123456789,
- "name" : "aeiou"
+ "name" : "aeiou",
+ "id" : 123456789
},
- "status" : "aeiou",
- "name" : "doggie",
- "photoUrls" : [ "aeiou" ]
+ "tags" : [ {
+ "name" : "aeiou",
+ "id" : 123456789
+ } ],
+ "status" : "aeiou"
}
{
- "message" : "aeiou",
"code" : 123,
- "type" : "aeiou"
+ "type" : "aeiou",
+ "message" : "aeiou"
}
{
- "id" : 123456789,
"petId" : 123456789,
- "complete" : true,
- "status" : "aeiou",
"quantity" : 123,
- "shipDate" : "2000-01-23T04:56:07.000+00:00"
+ "id" : 123456789,
+ "shipDate" : "2000-01-23T04:56:07.000+00:00",
+ "complete" : true,
+ "status" : "aeiou"
}
{
- "id" : 123456789,
"petId" : 123456789,
- "complete" : true,
- "status" : "aeiou",
"quantity" : 123,
- "shipDate" : "2000-01-23T04:56:07.000+00:00"
+ "id" : 123456789,
+ "shipDate" : "2000-01-23T04:56:07.000+00:00",
+ "complete" : true,
+ "status" : "aeiou"
}
{
- "id" : 123456789,
- "lastName" : "aeiou",
- "phone" : "aeiou",
- "username" : "aeiou",
- "email" : "aeiou",
- "userStatus" : 123,
"firstName" : "aeiou",
- "password" : "aeiou"
+ "lastName" : "aeiou",
+ "password" : "aeiou",
+ "userStatus" : 123,
+ "phone" : "aeiou",
+ "id" : 123456789,
+ "email" : "aeiou",
+ "username" : "aeiou"
}