mirror of
https://github.com/valitydev/openapi-generator.git
synced 2024-11-06 18:45:23 +00:00
Fix issue 1340 - StaticHtmlGenerator to allow snake_case property names (#2612)
* Updated StaticHtmlGenerator to it overrides the toVarName(String name) method in DefaultCodegen and prevents underscores from being converted to the word Underscore * adding model propery with a snake_case name * Reverting change to base petstore.yaml file * Trying to trigger another CI build * Trying to trigger another CI build * Removing trailing space
This commit is contained in:
parent
5fbb812d65
commit
687b5aabf3
@ -29,6 +29,8 @@ import org.openapitools.codegen.utils.ModelUtils;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static org.openapitools.codegen.utils.StringUtils.escape;
|
||||||
|
|
||||||
public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig {
|
public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig {
|
||||||
protected String invokerPackage = "org.openapitools.client";
|
protected String invokerPackage = "org.openapitools.client";
|
||||||
protected String groupId = "org.openapitools";
|
protected String groupId = "org.openapitools";
|
||||||
@ -176,6 +178,19 @@ public class StaticHtmlGenerator extends DefaultCodegen implements CodegenConfig
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DefaultCodegen converts snake_case property names to snakeUnderscorecase
|
||||||
|
// but for static HTML, we want to preserve snake_case names
|
||||||
|
@Override
|
||||||
|
public String toVarName(String name) {
|
||||||
|
if (reservedWords.contains(name)) {
|
||||||
|
return escapeReservedWord(name);
|
||||||
|
} else if (((CharSequence) name).chars().anyMatch(character -> specialCharReplacements.keySet().contains("" + ((char) character)))) {
|
||||||
|
return escape(name, specialCharReplacements, Arrays.asList("_"), null);
|
||||||
|
} else {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void preprocessOpenAPI(OpenAPI openAPI) {
|
public void preprocessOpenAPI(OpenAPI openAPI) {
|
||||||
Info info = openAPI.getInfo();
|
Info info = openAPI.getInfo();
|
||||||
info.setDescription(toHtml(info.getDescription()));
|
info.setDescription(toHtml(info.getDescription()));
|
||||||
|
@ -23,6 +23,8 @@ import io.swagger.v3.oas.models.media.ObjectSchema;
|
|||||||
import io.swagger.v3.oas.models.media.Schema;
|
import io.swagger.v3.oas.models.media.Schema;
|
||||||
import io.swagger.v3.oas.models.media.StringSchema;
|
import io.swagger.v3.oas.models.media.StringSchema;
|
||||||
import org.openapitools.codegen.CodegenModel;
|
import org.openapitools.codegen.CodegenModel;
|
||||||
|
import org.openapitools.codegen.CodegenProperty;
|
||||||
|
import org.openapitools.codegen.DefaultCodegen;
|
||||||
import org.openapitools.codegen.TestUtils;
|
import org.openapitools.codegen.TestUtils;
|
||||||
import org.openapitools.codegen.languages.StaticHtmlGenerator;
|
import org.openapitools.codegen.languages.StaticHtmlGenerator;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
@ -54,4 +56,18 @@ public class StaticHtmlGeneratorTest {
|
|||||||
Assert.assertEquals(openAPI.getInfo().getTitle(), "ping test");
|
Assert.assertEquals(openAPI.getInfo().getTitle(), "ping test");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(description = "ensure that snake_case propery names wont be converted to snakeUnderscorecase")
|
||||||
|
public void testFromPropertyWithUnderscores() {
|
||||||
|
final Schema schema = new Schema()
|
||||||
|
.description("a sample model with property containing an underscore")
|
||||||
|
.addProperties("favorite_food", new StringSchema());
|
||||||
|
final OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("UnderscoreTest", schema);
|
||||||
|
final DefaultCodegen codegen = new StaticHtmlGenerator();
|
||||||
|
codegen.setOpenAPI(openAPI);
|
||||||
|
|
||||||
|
CodegenProperty property = codegen.fromProperty("favorite_food", (Schema) openAPI.getComponents().getSchemas().get("UnderscoreTest").getProperties().get("favorite_food"));
|
||||||
|
|
||||||
|
Assert.assertEquals(property.baseName, "favorite_food");
|
||||||
|
Assert.assertEquals(property.name, "favorite_food");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user