bernhardedler
4 years agoFrequent Visitor
use imported types as query param
is it possible to use an imported type (via importMapping) not only as the return type for an endpoint, but as its parameter as well?
for example:
my api.yaml
openapi: 3.0.3
components:
schemas:
BossJobData:
type: object
[...]
paths:
/jobcc/save:
post:
operationId: save
parameters:
- name: jobDataMap
required: true
in: query
schema:
$ref: '#/components/schemas/BossJobData'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BossJobData'
my pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>5.0.1</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>jaxrs</language>
<generatorName>jaxrs-spec</generatorName>
<configOptions>
<sourceFolder>src/main/java</sourceFolder>
<useLoggingFeature>true</useLoggingFeature>
<useGzipFeature>true</useGzipFeature>
<hideGenerationTimestamp>true</hideGenerationTimestamp>
<interfaceOnly>true</interfaceOnly>
</configOptions>
</configuration>
</execution>
</executions>
<configuration>
<importMappings>
<importMapping>BossJobData=com.oebv.boss.shared.pojo.BossJobData</importMapping>
</importMappings>
</configuration>
</plugin>
</plugins>
</build>
and the resuling Java Code:
@POST
@Path("/save")
@Produces({ "application/json" })
@ApiOperation(value = "", notes = "", authorizations = {
@Authorization(value = "basicAuth")
}, tags={ })
@ApiResponses(value = {
@ApiResponse(code = 200, message = "OK", response = com.oebv.boss.shared.pojo.BossJobData.class) })
com.oebv.boss.shared.pojo.BossJobData save(@QueryParam("jobDataMap") @NotNull Object jobDataMap);
So apparently
a) the type is successfully imported
b) the imported type can be used as return type
c) it can't be used as parameter?
Am i missing something?
many thanks in advance,
bernhard