kumuluz / kumuluzee

Lightweight open-source framework for developing microservices using standard Java EE technologies and migrating Java EE to cloud-native architecture.
https://ee.kumuluz.com
MIT License
290 stars 73 forks source link

kumuluzee-openapi-mp-maven-plugin #196

Open eriskooo opened 3 years ago

eriskooo commented 3 years ago

Hello,

I am unable to succesfully generate openapi definition via maven build, generated files json+yaml does not contains any definitions

{ "openapi" : "3", "info" : { "title" : "Generated API", "version" : "1.0" }, "paths" : { } }

======================= my pom.xml

    <dependency>
        <groupId>com.kumuluz.ee.openapi</groupId>
        <artifactId>kumuluzee-openapi-mp-ui</artifactId>
        <version>1.1.2</version>
    </dependency>

    <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>2.1.1</version>
    </dependency>

    <plugin>
            <artifactId>kumuluzee-openapi-mp-maven-plugin</artifactId>
            <groupId>com.kumuluz.ee.openapi</groupId>
            <version>1.4.0</version>
            <configuration>
                <outputDirectory>${basedir}/swagger-generated/</outputDirectory>
                <schemaFilename>swagger</schemaFilename>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

could you plz help me why maven plugin is unable to find any controller ?

osbeorn commented 3 years ago

Could you please provide the structure of your project or better yet, a link to the repo, so I can take closer look.

eriskooo commented 3 years ago

Hi,

it seems, that problem is related to swagger, I've generated something like this and even https://editor.swagger.io/ cannot render fields properly

... requestDate: format: date-time description: chargeback request date in UTC type: string

object which contains this date field has an example used not at field, but as custom object

@APIResponses(value = {
        @APIResponse(responseCode = "200", description = "OK",
                content = @Content(schema = @Schema(implementation = ChargebackDetailResponse.class,
                        example = CHARGES_FOR_TRIP_ID))),

CHARGES_FOR_TRIP_ID contains String with json -> if I put invisible char (\u0007) into date field, it is rendered properly

(\"requestDate\": \"2021-02-28T20:19:19.77\u0007\",\n")

ZonedDateTime is rendered perfectly, Instant and LocalDateTime has an issue.

Many thanks for any help