diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java index d95f9cdf80e..5d554cf9713 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConfig.java @@ -111,7 +111,7 @@ public interface CodegenConfig { CodegenModel fromModel(String name, Schema schema); - CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation); + CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, List servers); List fromSecurity(Map schemas); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java index 1029c520126..9eec74487b3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java @@ -34,6 +34,7 @@ public class CodegenOperation { returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse; public CodegenDiscriminator discriminator; public List> consumes, produces, prioritizedContentTypes; + public List servers = new ArrayList(); public CodegenParameter bodyParam; public List allParams = new ArrayList(); public List bodyParams = new ArrayList(); @@ -317,6 +318,8 @@ public class CodegenOperation { return false; if (produces != null ? !produces.equals(that.produces) : that.produces != null) return false; + if (servers != null ? !servers.equals(that.servers) : that.servers != null) + return false; if (bodyParam != null ? !bodyParam.equals(that.bodyParam) : that.bodyParam != null) return false; if (allParams != null ? !allParams.equals(that.allParams) : that.allParams != null) @@ -399,6 +402,7 @@ public class CodegenOperation { result = 31 * result + (discriminator != null ? discriminator.hashCode() : 0); result = 31 * result + (consumes != null ? consumes.hashCode() : 0); result = 31 * result + (produces != null ? produces.hashCode() : 0); + result = 31 * result + (servers != null ? servers.hashCode() : 0); result = 31 * result + (bodyParam != null ? bodyParam.hashCode() : 0); result = 31 * result + (allParams != null ? allParams.hashCode() : 0); result = 31 * result + (bodyParams != null ? bodyParams.hashCode() : 0); 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 ad0fca8b5ee..5422042499c 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 @@ -2306,11 +2306,13 @@ public class DefaultCodegen implements CodegenConfig { * @param httpMethod HTTP method * @param operation OAS operation object * @param path the path of the operation + * @param servers list of servers * @return Codegen Operation object */ public CodegenOperation fromOperation(String path, String httpMethod, - Operation operation) { + Operation operation, + List servers) { LOGGER.debug("fromOperation => operation: " + operation); if (operation == null) throw new RuntimeException("operation cannot be null in fromOperation"); @@ -2325,6 +2327,15 @@ public class DefaultCodegen implements CodegenConfig { op.isCallbackRequest = Boolean.TRUE.equals(isCallbackRequest); } + // servers setting + if (operation.getServers() != null && !operation.getServers().isEmpty()) { + // use operation-level servers first if defined + op.servers = fromServers(operation.getServers()); + } else if (servers != null && !servers.isEmpty()) { + // use path-level servers + op.servers = fromServers(servers); + } + // store the original operationId for plug-in op.operationIdOriginal = operation.getOperationId(); @@ -2440,7 +2451,7 @@ public class DefaultCodegen implements CodegenConfig { if (operation.getCallbacks() != null && !operation.getCallbacks().isEmpty()) { operation.getCallbacks().forEach((name, callback) -> { - CodegenCallback c = fromCallback(name, callback); + CodegenCallback c = fromCallback(name, callback, servers); c.hasMore = true; op.callbacks.add(c); }); @@ -2736,9 +2747,10 @@ public class DefaultCodegen implements CodegenConfig { * * @param name callback name * @param callback OAS Callback object + * @param servers list of servers * @return Codegen Response object */ - public CodegenCallback fromCallback(String name, Callback callback) { + public CodegenCallback fromCallback(String name, Callback callback, List servers) { CodegenCallback c = new CodegenCallback(); c.name = name; @@ -2780,7 +2792,7 @@ public class DefaultCodegen implements CodegenConfig { // distinguish between normal operations and callback requests op.getExtensions().put("x-callback-request", true); - CodegenOperation co = fromOperation(expression, method, op); + CodegenOperation co = fromOperation(expression, method, op, servers); if (genId) { co.operationIdOriginal = null; // legacy (see `fromOperation()`) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index 54059f23287..4e373d2f754 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -1017,7 +1017,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator { final List globalSecurities = openAPI.getSecurity(); for (Tag tag : tags) { try { - CodegenOperation codegenOperation = config.fromOperation(resourcePath, httpMethod, operation); + CodegenOperation codegenOperation = config.fromOperation(resourcePath, httpMethod, operation, path.getServers()); codegenOperation.tags = new ArrayList<>(tags); config.addOperationToGroup(config.sanitizeTag(tag.getName()), resourcePath, operation, codegenOperation, operations); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java index 251e7355152..88a41d097c1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractAdaCodegen.java @@ -25,6 +25,7 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; @@ -389,8 +390,8 @@ abstract public class AbstractAdaCodegen extends DefaultCodegen implements Codeg } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); if (operation.getResponses() != null && !operation.getResponses().isEmpty()) { ApiResponse methodResponse = findMethodResponse(operation.getResponses()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java index 77aad170c25..33362b8bdb1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractApexCodegen.java @@ -23,6 +23,7 @@ import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.MapSchema; 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 org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; @@ -561,10 +562,10 @@ public abstract class AbstractApexCodegen extends DefaultCodegen implements Code } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { CodegenOperation op = super.fromOperation( - path, httpMethod, operation); + path, httpMethod, operation, null); if (op.getHasExamples()) { // prepare examples for Apex test classes diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java index efdf943c8f3..76e57413aad 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.StringSchema; +import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.parser.util.SchemaTypeUtil; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.BooleanUtils; @@ -1130,8 +1131,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); op.path = sanitizePath(op.path); return op; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java index 8fe7dc5cd94..c2738a28f5f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/BashClientCodegen.java @@ -25,6 +25,7 @@ import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; @@ -566,9 +567,9 @@ public class BashClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public CodegenOperation fromOperation(String path, String httpMethod, - Operation operation) { + Operation operation, List servers) { Map definitions = ModelUtils.getSchemas(this.openAPI); - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); /** * Check if the operation has a Bash codegen specific description 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 e1b1b02e09d..973250b5f49 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 @@ -21,6 +21,7 @@ import io.swagger.v3.oas.models.Operation; 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 org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; @@ -172,8 +173,8 @@ public class CppPistacheServerCodegen extends AbstractCppCodegen { } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); if (operation.getResponses() != null && !operation.getResponses().isEmpty()) { ApiResponse apiResponse = findMethodResponse(operation.getResponses()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java index 2ef4ae08dac..9521e478a0b 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CppRestSdkClientCodegen.java @@ -23,6 +23,7 @@ import io.swagger.v3.oas.models.Operation; 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 org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; @@ -227,8 +228,8 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen { } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); if (operation.getResponses() != null && !operation.getResponses().isEmpty()) { ApiResponse methodResponse = findMethodResponse(operation.getResponses()); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java index e1dc4ea52cb..8b0cfbc7cb3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/HaskellServantCodegen.java @@ -21,6 +21,7 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; @@ -458,8 +459,8 @@ public class HaskellServantCodegen extends DefaultCodegen implements CodegenConf @Override - public CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(resourcePath, httpMethod, operation); + public CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(resourcePath, httpMethod, operation, servers); List path = pathToServantRoute(op.path, op.pathParams); List type = pathToClientType(op.path, op.pathParams); diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java index a40ff3d53c3..2f9367f1db1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaVertXServerCodegen.java @@ -22,6 +22,7 @@ import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.PathItem; import io.swagger.v3.oas.models.PathItem.HttpMethod; import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.servers.Server; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.URLPathUtils; @@ -193,9 +194,9 @@ public class JavaVertXServerCodegen extends AbstractJavaCodegen { @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { CodegenOperation codegenOperation = - super.fromOperation(path, httpMethod, operation); + super.fromOperation(path, httpMethod, operation, servers); codegenOperation.imports.add("MainApiException"); return codegenOperation; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java index 1141f8f18a0..990cd476d58 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java @@ -19,6 +19,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.lang3.StringEscapeUtils; import org.openapitools.codegen.*; import org.slf4j.Logger; @@ -242,8 +243,9 @@ public class PhpSlimServerCodegen extends AbstractPhpCodegen { @Override public CodegenOperation fromOperation(String path, String httpMethod, - Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + Operation operation, + List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); op.path = encodePath(path); return op; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java index 12afcfa475b..f37e425120c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustServerCodegen.java @@ -25,6 +25,7 @@ import io.swagger.v3.oas.models.media.FileSchema; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.XML; import io.swagger.v3.oas.models.parameters.Parameter; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; @@ -466,9 +467,9 @@ public class RustServerCodegen extends DefaultCodegen implements CodegenConfig { } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { Map definitions = ModelUtils.getSchemas(this.openAPI); - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); // The Rust code will need to contain a series of regular expressions. // For performance, we'll construct these at start-of-day and re-use diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java index e65d76a8179..c1daf315eac 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/StaticHtml2Generator.java @@ -24,6 +24,7 @@ import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.Markdown; @@ -186,8 +187,8 @@ public class StaticHtml2Generator extends DefaultCodegen implements CodegenConfi } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { - CodegenOperation op = super.fromOperation(path, httpMethod, operation); + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { + CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers); if (op.returnType != null) { op.returnType = normalizeType(op.returnType); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java index be126fc427e..acfa9243117 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SwiftClientCodegen.java @@ -20,6 +20,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.media.ArraySchema; import io.swagger.v3.oas.models.media.Schema; +import io.swagger.v3.oas.models.servers.Server; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; @@ -509,10 +510,10 @@ public class SwiftClientCodegen extends DefaultCodegen implements CodegenConfig } @Override - public CodegenOperation fromOperation(String path, String httpMethod, Operation operation) { + public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { path = normalizePath(path); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. // issue 3914 - removed logic designed to remove any parameter of type HeaderParameter - return super.fromOperation(path, httpMethod, operation); + return super.fromOperation(path, httpMethod, operation, servers); } private static String normalizePath(String path) { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java index 766a1dc3166..65ad7ed3ba4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/DefaultCodegenTest.java @@ -93,7 +93,7 @@ public class DefaultCodegenTest { Assert.assertEquals(createProducesInfo.size(), 0); final DefaultCodegen codegen = new DefaultCodegen(); codegen.setOpenAPI(openAPI); - CodegenOperation coCreate = codegen.fromOperation("somepath", "post", createOperation); + CodegenOperation coCreate = codegen.fromOperation("somepath", "post", createOperation, null); Assert.assertTrue(coCreate.hasConsumes); Assert.assertEquals(coCreate.consumes.size(), 2); Assert.assertFalse(coCreate.hasProduces); @@ -108,7 +108,7 @@ public class DefaultCodegenTest { Assert.assertEquals(updateProducesInfo.size(), 1); Assert.assertTrue(updateProducesInfo.contains("application/xml"), "contains 'application/xml'"); - CodegenOperation coUpdate = codegen.fromOperation("somepath", "post", updateOperationWithRef); + CodegenOperation coUpdate = codegen.fromOperation("somepath", "post", updateOperationWithRef, null); Assert.assertTrue(coUpdate.hasConsumes); Assert.assertEquals(coUpdate.consumes.size(), 1); Assert.assertEquals(coUpdate.consumes.get(0).get("mediaType"), "application/json"); @@ -124,19 +124,19 @@ public class DefaultCodegenTest { codegen.setOpenAPI(openAPI); Operation textOperation = openAPI.getPaths().get("/ping/text").getGet(); - CodegenOperation coText = codegen.fromOperation("/ping/text", "get", textOperation); + CodegenOperation coText = codegen.fromOperation("/ping/text", "get", textOperation, null); Assert.assertTrue(coText.hasProduces); Assert.assertEquals(coText.produces.size(), 1); Assert.assertEquals(coText.produces.get(0).get("mediaType"), "text/plain"); Operation jsonOperation = openAPI.getPaths().get("/ping/json").getGet(); - CodegenOperation coJson = codegen.fromOperation("/ping/json", "get", jsonOperation); + CodegenOperation coJson = codegen.fromOperation("/ping/json", "get", jsonOperation, null); Assert.assertTrue(coJson.hasProduces); Assert.assertEquals(coJson.produces.size(), 1); Assert.assertEquals(coJson.produces.get(0).get("mediaType"), "application/json"); Operation issue443Operation = openAPI.getPaths().get("/other/issue443").getGet(); - CodegenOperation coIssue443 = codegen.fromOperation("/other/issue443", "get", issue443Operation); + CodegenOperation coIssue443 = codegen.fromOperation("/other/issue443", "get", issue443Operation, null); Assert.assertTrue(coIssue443.hasProduces); Assert.assertEquals(coIssue443.produces.size(), 2); Assert.assertEquals(coIssue443.produces.get(0).get("mediaType"), "application/json"); @@ -207,7 +207,7 @@ public class DefaultCodegenTest { codegen.setOpenAPI(openAPI); Operation operation = openAPI.getPaths().get("/test").getGet(); - CodegenOperation co = codegen.fromOperation("/test", "get", operation); + CodegenOperation co = codegen.fromOperation("/test", "get", operation, null); Assert.assertEquals(co.produces.size(), 1); Assert.assertEquals(co.produces.get(0).get("mediaType"), "application/json"); @@ -224,7 +224,7 @@ public class DefaultCodegenTest { DefaultCodegen codegen = new DefaultCodegen(); codegen.setOpenAPI(openAPI); - CodegenOperation co = codegen.fromOperation("/some/path", "get", operation); + CodegenOperation co = codegen.fromOperation("/some/path", "get", operation, null); Assert.assertEquals(co.path, "/some/path"); Assert.assertEquals(co.allParams.size(), 2); List allParamsNames = co.allParams.stream().map(p -> p.paramName).collect(Collectors.toList()); @@ -443,7 +443,7 @@ public class DefaultCodegenTest { String path = "/person/display/{personId}"; Operation operation = openAPI.getPaths().get(path).getGet(); - CodegenOperation codegenOperation = codegen.fromOperation(path, "GET", operation); + CodegenOperation codegenOperation = codegen.fromOperation(path, "GET", operation, null); verifyPersonDiscriminator(codegenOperation.discriminator); Schema person = openAPI.getComponents().getSchemas().get("Person"); @@ -471,7 +471,7 @@ public class DefaultCodegenTest { final String path = "/streams"; Operation subscriptionOperation = openAPI.getPaths().get("/streams").getPost(); - CodegenOperation op = codegen.fromOperation(path, "post", subscriptionOperation); + CodegenOperation op = codegen.fromOperation(path, "post", subscriptionOperation, null); Assert.assertFalse(op.isCallbackRequest); Assert.assertNotNull(op.operationId); @@ -528,9 +528,9 @@ public class DefaultCodegenTest { final DefaultCodegen codegen = new DefaultCodegen(); codegen.setOpenAPI(openAPI); - CodegenOperation co1 = codegen.fromOperation("/here", "get", operation2); + CodegenOperation co1 = codegen.fromOperation("/here", "get", operation2, null); Assert.assertEquals(co1.path, "/here"); - CodegenOperation co2 = codegen.fromOperation("some/path", "get", operation2); + CodegenOperation co2 = codegen.fromOperation("some/path", "get", operation2, null); Assert.assertEquals(co2.path, "/some/path"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java index c8c195cd2e1..1c150d76a01 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/bash/BashTest.java @@ -46,7 +46,8 @@ public class BashTest { = codegen.fromOperation( "/pet/findByStatus", "GET", - findPetsByStatusOperation); + findPetsByStatusOperation, + null); Assert.assertTrue( op.vendorExtensions.containsKey("x-code-samples")); @@ -75,7 +76,8 @@ public class BashTest { = codegen.fromOperation( "/pet", "POST", - addPetOperation); + addPetOperation, + null); Assert.assertEquals(op.bodyParams.size(), 1); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java index d9efcb8e7b2..e90fb440a4a 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartModelTest.java @@ -318,7 +318,7 @@ public class DartModelTest { final String path = "/tests/dateResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "DateTime"); Assert.assertEquals(op.bodyParam.dataType, "DateTime"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java index 0a1bb7d7ef0..cdf8d15da48 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java @@ -66,7 +66,7 @@ public class GoClientCodegenTest { codegen.setOpenAPI(openAPI); final String path = "/fake"; final Operation p = openAPI.getPaths().get(path).getGet(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.formParams.size(), 2); CodegenParameter bp = op.formParams.get(0); Assert.assertFalse(bp.isPrimitiveType); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java index d0d4316dad7..0654dc91e2c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaCXFClientCodegenTest.java @@ -48,7 +48,7 @@ public class JavaCXFClientCodegenTest { .addApiResponse("400", new ApiResponse().description("Error"))); OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("Pet", new ObjectSchema()); final JavaCXFClientCodegen codegen = new JavaCXFClientCodegen(); - final CodegenOperation co = codegen.fromOperation("getAllPets", "GET", operation); + final CodegenOperation co = codegen.fromOperation("getAllPets", "GET", operation, null); Map objs = new HashMap<>(); objs.put("operations", Collections.singletonMap("operation", Collections.singletonList(co))); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index a2b600a0c00..995f885cc19 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -199,7 +199,7 @@ public class JavaClientCodegenTest { final JavaClientCodegen codegen = new JavaClientCodegen(); Operation operation = openAPI.getPaths().get("/ping").getPost(); - CodegenOperation co = codegen.fromOperation("/ping", "POST", operation); + CodegenOperation co = codegen.fromOperation("/ping", "POST", operation, null); Assert.assertEquals(co.allParams.size(), 1); Assert.assertEquals(co.allParams.get(0).baseType, "MessageEventCoreWithTimeListEntries"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java index c29824a4824..73cf558b70e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelTest.java @@ -1059,7 +1059,7 @@ public class JavaModelTest { OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("Pet", new ObjectSchema().addProperties("name", new StringSchema())); final DefaultCodegen codegen = new JavaClientCodegen(); codegen.setOpenAPI(openAPI); - final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation); + final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation, null); Assert.assertEquals(co.bodyParams.size(), 1); CodegenParameter cp1 = co.bodyParams.get(0); @@ -1090,7 +1090,7 @@ public class JavaModelTest { OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("Pet", new ObjectSchema().addProperties("name", new StringSchema())); final DefaultCodegen codegen = new JavaClientCodegen(); codegen.setOpenAPI(openAPI); - final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation); + final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation, null); Assert.assertEquals(co.responses.size(), 1); CodegenResponse cr = co.responses.get(0); @@ -1139,7 +1139,7 @@ public class JavaModelTest { OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("Pet", new ObjectSchema().addProperties("name", new StringSchema())); final DefaultCodegen codegen = new JavaClientCodegen(); codegen.setOpenAPI(openAPI); - final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation); + final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation, null); Assert.assertEquals(co.bodyParams.size(), 1); CodegenParameter cp1 = co.bodyParams.get(0); @@ -1174,7 +1174,7 @@ public class JavaModelTest { OpenAPI openAPI = TestUtils.createOpenAPIWithOneSchema("Pet", new ObjectSchema().addProperties("name", new StringSchema())); final DefaultCodegen codegen = new JavaClientCodegen(); codegen.setOpenAPI(openAPI); - final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation); + final CodegenOperation co = codegen.fromOperation("testSchema", "GET", operation, null); Assert.assertEquals(co.responses.size(), 1); CodegenResponse cr = co.responses.get(0); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java index 90f4feb85e7..f28f5199755 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/objc/ObjcModelTest.java @@ -349,7 +349,7 @@ public class ObjcModelTest { final String path = "/tests/binaryResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); codegen.setOpenAPI(openAPI); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertTrue(op.bodyParam.isBinary); Assert.assertTrue(op.responses.get(0).isBinary); @@ -368,7 +368,7 @@ public class ObjcModelTest { final PathItem animalOps = animalPaths.get("/animals"); Assert.assertNotNull(animalOps.getPost()); - final CodegenOperation animalCo = codegen.fromOperation("/animals", "POST", animalOps.getPost()); + final CodegenOperation animalCo = codegen.fromOperation("/animals", "POST", animalOps.getPost(), null); Assert.assertEquals(animalCo.imports.size(), 1); Assert.assertTrue(animalCo.imports.contains("OAIAnimal")); @@ -376,7 +376,7 @@ public class ObjcModelTest { final PathItem insectOps = insectPaths.get("/insects"); Assert.assertNotNull(insectOps.getPost()); - final CodegenOperation insectCo = codegen.fromOperation("/insects", "POST", insectOps.getPost()); + final CodegenOperation insectCo = codegen.fromOperation("/insects", "POST", insectOps.getPost(), null); Assert.assertEquals(insectCo.imports.size(), 1); Assert.assertTrue(insectCo.imports.contains("OAIInsect")); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/perl/PerlClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/perl/PerlClientCodegenTest.java index 230cbaae2eb..f6f6e895019 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/perl/PerlClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/perl/PerlClientCodegenTest.java @@ -65,7 +65,7 @@ public class PerlClientCodegenTest { codegen.setOpenAPI(openAPI); Operation operation = openAPI.getPaths().get("/issue677").getPost(); - CodegenOperation co = codegen.fromOperation("/issue677", "POST", operation); + CodegenOperation co = codegen.fromOperation("/issue677", "POST", operation, null); Assert.assertNotNull(co); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java index 75d13830db9..2eef0b1cb18 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpModelTest.java @@ -385,7 +385,7 @@ public class PhpModelTest { final String path = "/tests/dateResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "\\DateTime"); Assert.assertEquals(op.bodyParam.dataType, "\\DateTime"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java index b6ed7a542e3..2b9de8067cd 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java @@ -66,7 +66,7 @@ public class PythonClientCodegenTest { codegen.setOpenAPI(openAPI); final String path = "/ping"; final Operation p = openAPI.getPaths().get(path).getGet(); - final CodegenOperation op = codegen.fromOperation(path, "get", p); + final CodegenOperation op = codegen.fromOperation(path, "get", p, null); // pattern_no_forward_slashes '^pattern$' Assert.assertEquals(op.allParams.get(0).pattern, "/^pattern$/"); // pattern_two_slashes '/^pattern$/' diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonTest.java index 5af08249737..e3480aed6ae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonTest.java @@ -52,7 +52,7 @@ public class PythonTest { final String path = "/api/v1beta3/namespaces/{namespaces}/bindings"; final Operation operation = openAPI.getPaths().get(path).getPost(); - final CodegenOperation codegenOperation = codegen.fromOperation(path, "get", operation); + final CodegenOperation codegenOperation = codegen.fromOperation(path, "get", operation, null); Assert.assertEquals(codegenOperation.returnType, "V1beta3Binding"); Assert.assertEquals(codegenOperation.returnBaseType, "V1beta3Binding"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java index 389505a1b25..87cc491fd18 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java @@ -152,7 +152,7 @@ public class RubyClientCodegenTest { codegen.setOpenAPI(openAPI); final String path = "/fake"; final Operation p = openAPI.getPaths().get(path).getGet(); - final CodegenOperation op = codegen.fromOperation(path, "get", p); + final CodegenOperation op = codegen.fromOperation(path, "get", p, null); Assert.assertEquals(op.formParams.size(), 2); CodegenParameter fp = op.formParams.get(0); Assert.assertEquals(fp.dataType, "Array"); @@ -168,7 +168,7 @@ public class RubyClientCodegenTest { codegen.setOpenAPI(openAPI); final String path = "/pet"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.bodyParams.size(), 1); CodegenParameter bp = op.bodyParams.get(0); Assert.assertEquals(bp.example, "OnlinePetstore::Pet.new"); @@ -299,7 +299,7 @@ public class RubyClientCodegenTest { final String path = "/pet/{petId}"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.pathParams.size(), 1); CodegenParameter pp = op.pathParams.get(0); @@ -321,7 +321,7 @@ public class RubyClientCodegenTest { final String path = "/pet/{petId}"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); // path parameter x-nullable test Assert.assertEquals(op.pathParams.size(), 1); @@ -541,7 +541,7 @@ public class RubyClientCodegenTest { final String path = "/store/order/{orderId}"; final Operation p = openAPI.getPaths().get(path).getDelete(); - final CodegenOperation op = codegen.fromOperation(path, "delete", p); + final CodegenOperation op = codegen.fromOperation(path, "delete", p, null); CodegenParameter pp = op.pathParams.get(0); Assert.assertEquals(pp.example, "'orderid123'"); @@ -557,7 +557,7 @@ public class RubyClientCodegenTest { final String path = "/store/order/{orderId}"; final Operation p = openAPI.getPaths().get(path).getDelete(); - final CodegenOperation op = codegen.fromOperation(path, "delete", p); + final CodegenOperation op = codegen.fromOperation(path, "delete", p, null); CodegenParameter pp = op.pathParams.get(0); Assert.assertEquals(pp.example, "'orderid123'"); @@ -577,7 +577,7 @@ public class RubyClientCodegenTest { codegen.setOpenAPI(openAPI); final String path = "/ping"; final Operation p = openAPI.getPaths().get(path).getGet(); - final CodegenOperation op = codegen.fromOperation(path, "get", p); + final CodegenOperation op = codegen.fromOperation(path, "get", p, null); // pattern_no_forward_slashes '^pattern$' Assert.assertEquals(op.allParams.get(0).pattern, "/^pattern$/"); // pattern_two_slashes '/^pattern$/i' diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift3/Swift3CodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift3/Swift3CodegenTest.java index 70ab4552f93..7be8a43b1ea 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift3/Swift3CodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift3/Swift3CodegenTest.java @@ -95,7 +95,7 @@ public class Swift3CodegenTest { codegen.setOpenAPI(openAPI); final String path = "/tests/binaryResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "Data"); Assert.assertEquals(op.bodyParam.dataType, "Data"); @@ -110,7 +110,7 @@ public class Swift3CodegenTest { codegen.setOpenAPI(openAPI); final String path = "/tests/dateResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "ISOFullDate"); Assert.assertEquals(op.bodyParam.dataType, "ISOFullDate"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift4/Swift4CodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift4/Swift4CodegenTest.java index 6eb1aa147df..592409b237e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift4/Swift4CodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/swift4/Swift4CodegenTest.java @@ -98,7 +98,7 @@ public class Swift4CodegenTest { codegen.setOpenAPI(openAPI); final String path = "/tests/binaryResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "URL"); Assert.assertEquals(op.bodyParam.dataType, "URL"); @@ -113,7 +113,7 @@ public class Swift4CodegenTest { codegen.setOpenAPI(openAPI); final String path = "/tests/dateResponse"; final Operation p = openAPI.getPaths().get(path).getPost(); - final CodegenOperation op = codegen.fromOperation(path, "post", p); + final CodegenOperation op = codegen.fromOperation(path, "post", p, null); Assert.assertEquals(op.returnType, "Date"); Assert.assertEquals(op.bodyParam.dataType, "Date");