diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java index 938c7c9e760..104ca898608 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PostmanCollectionCodegen.java @@ -226,6 +226,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC // produces mediaType as `Accept` header (use first mediaType only) String mediaType = codegenOperation.produces.get(0).get("mediaType"); CodegenParameter acceptHeader = new CodegenParameter(); + acceptHeader.baseName = "Accept"; acceptHeader.paramName = "Accept"; CodegenProperty schema = new CodegenProperty(); schema.defaultValue = mediaType; @@ -237,6 +238,8 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC // consumes mediaType as `Content-Type` header (use first mediaType only) String mediaType = codegenOperation.consumes.get(0).get("mediaType"); CodegenParameter contentTypeHeader = new CodegenParameter(); + + contentTypeHeader.baseName = "Content-Type"; contentTypeHeader.paramName = "Content-Type"; CodegenProperty schema = new CodegenProperty(); schema.defaultValue = mediaType; diff --git a/modules/openapi-generator/src/main/resources/postman-collection/item.mustache b/modules/openapi-generator/src/main/resources/postman-collection/item.mustache index 61ee0eb879c..51174aa657b 100644 --- a/modules/openapi-generator/src/main/resources/postman-collection/item.mustache +++ b/modules/openapi-generator/src/main/resources/postman-collection/item.mustache @@ -10,7 +10,7 @@ "header": [ {{#headerParams}} { - "key": "{{paramName}}", + "key": "{{baseName}}", "value": "{{schema.defaultValue}}" }{{^-last}},{{/-last}} {{/headerParams}} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java index 35e057ff159..62bfa5f52d9 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/postman/PostmanCollectionCodegenTest.java @@ -6,10 +6,7 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.ObjectNode; import org.junit.Assert; import org.junit.Test; -import org.openapitools.codegen.ClientOptInput; -import org.openapitools.codegen.CodegenParameter; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.DefaultGenerator; +import org.openapitools.codegen.*; import org.openapitools.codegen.config.CodegenConfigurator; import org.openapitools.codegen.languages.PostmanCollectionCodegen; @@ -466,6 +463,32 @@ public class PostmanCollectionCodegenTest { } + @Test + public void testHeaderParameters() throws IOException { + + File output = Files.createTempDirectory("postmantest_").toFile(); + output.deleteOnExit(); + + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName("postman-collection") + .setInputSpec("./src/test/resources/SampleProject.yaml") + .setInputSpec("src/test/resources/3_0/postman-collection/SampleProject.yaml") + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); + + final ClientOptInput clientOptInput = configurator.toClientOptInput(); + DefaultGenerator generator = new DefaultGenerator(); + List files = generator.opts(clientOptInput).generate(); + + files.forEach(File::deleteOnExit); + + Path path = Paths.get(output + "/postman.json"); + TestUtils.assertFileExists(path); + TestUtils.assertFileContains(path, "{ \"key\": \"Content-Type\", \"value\": \"application/json\""); + TestUtils.assertFileContains(path, "{ \"key\": \"Accept\", \"value\": \"application/json\""); + TestUtils.assertFileContains(path, "{ \"key\": \"Custom-Header\", \"value\": \"null\""); + } + + @Test public void testFormatDescription() { diff --git a/modules/openapi-generator/src/test/resources/3_0/postman-collection/SampleProject.yaml b/modules/openapi-generator/src/test/resources/3_0/postman-collection/SampleProject.yaml index cfe38e97bd9..68880c12bc1 100644 --- a/modules/openapi-generator/src/test/resources/3_0/postman-collection/SampleProject.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/postman-collection/SampleProject.yaml @@ -47,6 +47,11 @@ paths: schema: type: string example: 888 + - description: Custom HTTP header + name: Custom-Header + in: header + schema: + type: string responses: '200': diff --git a/samples/schema/postman-collection/postman.json b/samples/schema/postman-collection/postman.json index f9c4e042eb9..3e411b1726e 100644 --- a/samples/schema/postman-collection/postman.json +++ b/samples/schema/postman-collection/postman.json @@ -148,6 +148,10 @@ { "key": "Accept", "value": "application/json" + }, + { + "key": "Custom-Header", + "value": "null" } ], "body": {