diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java index ef72bae11fd..446a4143bba 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppPistacheServerCodegen.java @@ -22,12 +22,15 @@ import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.servers.Server; +import io.swagger.v3.oas.models.OpenAPI; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; +import org.openapitools.codegen.utils.URLPathUtils; import java.io.File; import java.util.*; +import java.net.URL; import static org.openapitools.codegen.utils.StringUtils.*; @@ -401,7 +404,14 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { public String getTypeDeclaration(String str) { return toModelName(str); } - + + @Override + public void preprocessOpenAPI(OpenAPI openAPI) { + URL url = URLPathUtils.getServerURL(openAPI); + String port = URLPathUtils.getPort(url, "8080"); + this.additionalProperties.put("serverPort", port); + } + /** * Specify whether external libraries will be added during the generation * @param value the value to be set diff --git a/modules/openapi-generator/src/main/resources/cpp-pistache-server/main-api-server.mustache b/modules/openapi-generator/src/main/resources/cpp-pistache-server/main-api-server.mustache index 7973d2dcb65..d2bf9c4540c 100644 --- a/modules/openapi-generator/src/main/resources/cpp-pistache-server/main-api-server.mustache +++ b/modules/openapi-generator/src/main/resources/cpp-pistache-server/main-api-server.mustache @@ -52,7 +52,7 @@ int main() { std::vector sigs{SIGQUIT, SIGINT, SIGTERM, SIGHUP}; setUpUnixSignals(sigs); #endif - Pistache::Address addr(Pistache::Ipv4::any(), Pistache::Port(8080)); + Pistache::Address addr(Pistache::Ipv4::any(), Pistache::Port({{serverPort}})); httpEndpoint = new Pistache::Http::Endpoint((addr)); auto router = std::make_shared();