mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-07-04 14:40:53 +00:00
Added outputAsLibrary, onlyInterfaces additional-properties to go-server (#11563)
This commit is contained in:
parent
94b1440074
commit
6bc50ee57f
@ -22,6 +22,8 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
|||||||
|enumClassPrefix|Prefix enum with class name| |false|
|
|enumClassPrefix|Prefix enum with class name| |false|
|
||||||
|featureCORS|Enable Cross-Origin Resource Sharing middleware| |false|
|
|featureCORS|Enable Cross-Origin Resource Sharing middleware| |false|
|
||||||
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
|
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
|
||||||
|
|onlyInterfaces|Exclude default service creators from output; only generate interfaces| |false|
|
||||||
|
|outputAsLibrary|Exclude main.go, go.mod, and Dockerfile from output| |false|
|
||||||
|packageName|Go package name (convention: lowercase).| |openapi|
|
|packageName|Go package name (convention: lowercase).| |openapi|
|
||||||
|packageVersion|Go package version.| |1.0.0|
|
|packageVersion|Go package version.| |1.0.0|
|
||||||
|router|Specify the router which should be used.|<dl><dt>**mux**</dt><dd>mux</dd><dt>**chi**</dt><dd>chi</dd></dl>|mux|
|
|router|Specify the router which should be used.|<dl><dt>**mux**</dt><dd>mux</dd><dt>**chi**</dt><dd>chi</dd></dl>|mux|
|
||||||
|
@ -53,6 +53,8 @@ public class GoServerCodegen extends AbstractGoCodegen {
|
|||||||
protected String sourceFolder = "go";
|
protected String sourceFolder = "go";
|
||||||
protected Boolean corsFeatureEnabled = false;
|
protected Boolean corsFeatureEnabled = false;
|
||||||
protected Boolean addResponseHeaders = false;
|
protected Boolean addResponseHeaders = false;
|
||||||
|
protected Boolean outputAsLibrary = false;
|
||||||
|
protected Boolean onlyInterfaces = false;
|
||||||
|
|
||||||
|
|
||||||
public GoServerCodegen() {
|
public GoServerCodegen() {
|
||||||
@ -109,6 +111,18 @@ public class GoServerCodegen extends AbstractGoCodegen {
|
|||||||
optAddResponseHeaders.defaultValue(addResponseHeaders.toString());
|
optAddResponseHeaders.defaultValue(addResponseHeaders.toString());
|
||||||
cliOptions.add(optAddResponseHeaders);
|
cliOptions.add(optAddResponseHeaders);
|
||||||
|
|
||||||
|
|
||||||
|
// option to exclude service factories; only interfaces are rendered
|
||||||
|
CliOption optOnlyInterfaces = new CliOption("onlyInterfaces", "Exclude default service creators from output; only generate interfaces");
|
||||||
|
optOnlyInterfaces.setType("bool");
|
||||||
|
optOnlyInterfaces.defaultValue(onlyInterfaces.toString());
|
||||||
|
cliOptions.add(optOnlyInterfaces);
|
||||||
|
|
||||||
|
// option to exclude main package (main.go), Dockerfile, and go.mod files
|
||||||
|
CliOption optOutputAsLibrary = new CliOption("outputAsLibrary", "Exclude main.go, go.mod, and Dockerfile from output");
|
||||||
|
optOutputAsLibrary.setType("bool");
|
||||||
|
optOutputAsLibrary.defaultValue(outputAsLibrary.toString());
|
||||||
|
cliOptions.add(optOutputAsLibrary);
|
||||||
/*
|
/*
|
||||||
* Models. You can write model files using the modelTemplateFiles map.
|
* Models. You can write model files using the modelTemplateFiles map.
|
||||||
* if you want to create one template for file, you can do so here.
|
* if you want to create one template for file, you can do so here.
|
||||||
@ -214,6 +228,22 @@ public class GoServerCodegen extends AbstractGoCodegen {
|
|||||||
additionalProperties.put("addResponseHeaders", addResponseHeaders);
|
additionalProperties.put("addResponseHeaders", addResponseHeaders);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey("onlyInterfaces")) {
|
||||||
|
this.setOnlyInterfaces(convertPropertyToBooleanAndWriteBack("onlyInterfaces"));
|
||||||
|
} else {
|
||||||
|
additionalProperties.put("onlyInterfaces", onlyInterfaces);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.onlyInterfaces) {
|
||||||
|
apiTemplateFiles.remove("service.mustache");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey("outputAsLibrary")) {
|
||||||
|
this.setOutputAsLibrary(convertPropertyToBooleanAndWriteBack("outputAsLibrary"));
|
||||||
|
} else {
|
||||||
|
additionalProperties.put("outputAsLibrary", outputAsLibrary);
|
||||||
|
}
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.ENUM_CLASS_PREFIX)) {
|
if (additionalProperties.containsKey(CodegenConstants.ENUM_CLASS_PREFIX)) {
|
||||||
setEnumClassPrefix(Boolean.parseBoolean(additionalProperties.get(CodegenConstants.ENUM_CLASS_PREFIX).toString()));
|
setEnumClassPrefix(Boolean.parseBoolean(additionalProperties.get(CodegenConstants.ENUM_CLASS_PREFIX).toString()));
|
||||||
if (enumClassPrefix) {
|
if (enumClassPrefix) {
|
||||||
@ -238,10 +268,12 @@ public class GoServerCodegen extends AbstractGoCodegen {
|
|||||||
* entire object tree available. If the input file has a suffix of `.mustache
|
* entire object tree available. If the input file has a suffix of `.mustache
|
||||||
* it will be processed by the template engine. Otherwise, it will be copied
|
* it will be processed by the template engine. Otherwise, it will be copied
|
||||||
*/
|
*/
|
||||||
|
if (!outputAsLibrary) {
|
||||||
|
supportingFiles.add(new SupportingFile("main.mustache", "", "main.go"));
|
||||||
|
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
|
||||||
|
supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod"));
|
||||||
|
}
|
||||||
supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));
|
supportingFiles.add(new SupportingFile("openapi.mustache", "api", "openapi.yaml"));
|
||||||
supportingFiles.add(new SupportingFile("main.mustache", "", "main.go"));
|
|
||||||
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
|
|
||||||
supportingFiles.add(new SupportingFile("go.mod.mustache", "", "go.mod"));
|
|
||||||
supportingFiles.add(new SupportingFile("routers.mustache", sourceFolder, "routers.go"));
|
supportingFiles.add(new SupportingFile("routers.mustache", sourceFolder, "routers.go"));
|
||||||
supportingFiles.add(new SupportingFile("logger.mustache", sourceFolder, "logger.go"));
|
supportingFiles.add(new SupportingFile("logger.mustache", sourceFolder, "logger.go"));
|
||||||
supportingFiles.add(new SupportingFile("impl.mustache", sourceFolder, "impl.go"));
|
supportingFiles.add(new SupportingFile("impl.mustache", sourceFolder, "impl.go"));
|
||||||
@ -363,6 +395,14 @@ public class GoServerCodegen extends AbstractGoCodegen {
|
|||||||
this.addResponseHeaders = addResponseHeaders;
|
this.addResponseHeaders = addResponseHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOnlyInterfaces(Boolean onlyInterfaces) {
|
||||||
|
this.onlyInterfaces = onlyInterfaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutputAsLibrary(Boolean outputAsLibrary) {
|
||||||
|
this.outputAsLibrary = outputAsLibrary;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateModelForObject(CodegenModel m, Schema schema) {
|
protected void updateModelForObject(CodegenModel m, Schema schema) {
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user