Skip to content

Commit 9e0badb

Browse files
authored
added support for cookie parameters to jaxrs-spec generator (#8117)
1 parent 7fae4ab commit 9e0badb

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

modules/openapi-generator/src/main/resources/JavaJaxRS/spec/apiMethod.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
@ApiResponses(value = { {{#responses}}
1212
@ApiResponse(code = {{{code}}}, message = "{{{message}}}", response = {{{baseType}}}.class{{#containerType}}, responseContainer = "{{{containerType}}}"{{/containerType}}){{^-last}},{{/-last}}{{/responses}}
1313
}){{/useSwaggerAnnotations}}
14-
public Response {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}) {
14+
public Response {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>cookieParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}}) {
1515
return Response.ok().entity("magic!").build();
1616
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{#isCookieParam}}@CookieParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidationQueryParams}}{{/useBeanValidation}}{{^isContainer}}{{#defaultValue}} @DefaultValue({{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}{{{defaultValue}}}{{^isString}}"{{/isString}}{{#isString}}{{#isEnum}}"{{/isEnum}}{{/isString}}){{/defaultValue}}{{/isContainer}} {{#useSwaggerAnnotations}}{{#description}} @ApiParam("{{description}}"){{/description}}{{/useSwaggerAnnotations}} {{{dataType}}} {{paramName}}{{/isCookieParam}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,33 @@ public void testGenerateApiWithPreceedingPathParameter_issue1347() throws Except
346346
output.deleteOnExit();
347347
}
348348

349+
@Test
350+
public void testGenerateApiWithCookieParameter_issue2908() throws Exception {
351+
Map<String, Object> properties = new HashMap<>();
352+
properties.put(JavaJAXRSSpecServerCodegen.OPEN_API_SPEC_FILE_LOCATION, "openapi.yml");
353+
354+
File output = Files.createTempDirectory("test").toFile();
355+
356+
final CodegenConfigurator configurator = new CodegenConfigurator()
357+
.setGeneratorName("jaxrs-spec")
358+
.setAdditionalProperties(properties)
359+
.setInputSpec("src/test/resources/3_0/issue_2908.yaml")
360+
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
361+
362+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
363+
DefaultGenerator generator = new DefaultGenerator(false);
364+
List<File> files = generator.opts(clientOptInput).generate();
365+
366+
validateJavaSourceFiles(files);
367+
368+
TestUtils.ensureContainsFile(files, output, "openapi.yml");
369+
files.stream().forEach(System.out::println);
370+
TestUtils.ensureContainsFile(files, output, "src/gen/java/org/openapitools/api/SomethingApi.java");
371+
TestUtils.assertFileContains(output.toPath().resolve("src/gen/java/org/openapitools/api/SomethingApi.java"), "@CookieParam");
372+
373+
output.deleteOnExit();
374+
}
375+
349376
@Test
350377
public void addsImportForSetArgument() throws IOException {
351378
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
openapi: 3.0.1
2+
info:
3+
title: Issue 2908 - Cookie parameters
4+
description: "Cookie parameters for JAX-RS Spec generator"
5+
version: 0.0.1
6+
7+
paths:
8+
/something:
9+
post:
10+
operationId: withCookieParam
11+
parameters:
12+
- name: myCookieParam
13+
in: cookie
14+
required: true
15+
description: cookie param
16+
schema:
17+
type: string
18+
responses:
19+
200:
20+
description: success

0 commit comments

Comments
 (0)