Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kongchen Swagger is ignoring the @ApiModelProperty annotation

I've tried to add more information on my Swagger documentation, but I'm having some issues with the @ApiPropertyModel annotation in specific.

It doesn't matter what I try to do, it just doesn't work. The plugin is generating the Swagger.json correctly, all the @ApiOperation annotations are working for the REST resources, but for the model part, it only introspects the model classes' properties and doesn't look at the annotations above them.

Here is how the plugin is configured:

<plugin>
    <groupId>com.github.kongchen</groupId>
    <artifactId>swagger-maven-plugin</artifactId>
    <version>3.1.5</version>

    <configuration>
        <apiSources>
            <apiSource>
                <locations>
                    <location>com.example.rest.resources</location>
                    <location>com.example.rest.model</location>
                </locations>
                <swaggerDirectory>${project.build.directory}/generated-sources</swaggerDirectory>
                <basePath>/path/to/the/api</basePath>
                <info>
                    <title>My RESTful API Documentation</title>
                    <version>${project.version}</version>
                </info>
            </apiSource>
        </apiSources>
    </configuration>

    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

If I have for example:

@ApiModelProperty(example = "test example")
public String test;

It will generate the test property but it won't create any example or any other property that I set up in that annotation. The same is happening when using it in a getter, so I think that's not the problem.

Am I doing anything wrong? Also, I looked at Kongchen's example project and I couldn't see anything special to make it work.

like image 397
Magno Nascimento Avatar asked Dec 30 '17 01:12

Magno Nascimento


1 Answers

I was trying to mess with the code again, and I've found that the problem is on the structure of the project. It has different modules, and it has a profile for the general development and a profile just for the RESTful API documentation.

I was distracted for a while and started to build the projects using mvn clean package, and as it had a version of the project installed, it was using it to create the documentation, and that's why it was never changing, after I used mvn clean install in the main source code I could see the annotation make any effect.

I'm sorry guys, it was beyond any information I could give about the documentation project, since it was something about the whole structure I'm using. But at least I'll keep this answer so the next person may be aware about this.

Thank you for your attention!

like image 184
Magno Nascimento Avatar answered Sep 21 '22 09:09

Magno Nascimento