Reputation: 421
I am trying to generate swagger documentation using Swagger maven plugin
But nothing is created, this is plugin in details I entered:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.2.2-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>/data/AMEE/ame/api.yaml</inputSpec>
<language>java</language>
<configOptions>
<sourceFolder>/data/AMEE/ame/gen</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
It didn't create any documentation. Then I tried kongchen swagger maven plugin
Plugin:
<plugin>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<skipSwaggerGeneration>false</skipSwaggerGeneration>
<apiSources>
<apiSource>
<springmvc>false</springmvc>
<locations>
<location>com.aepona.monatization.api.rest</location>
<location>com.aepona.monatization.inputprocessing.api.rest</location>
<location>com.aepona.monatization.reporting.api.rest</location>
</locations>
<schemes>
<scheme>http</scheme>
<scheme>https</scheme>
</schemes>
<host>localhost:8080</host>
<basePath>/api</basePath>
<descriptionFile>/data/zzzz/descriptionFile</descriptionFile>
<info>
<title>Acccelerite Monatization Engine</title>
<version>1.0.0</version>
<description>DESCRIPTION</description>
<termsOfService>http://terms-of-services.url</termsOfService>
<license>
<url>http://url-to-license.com</url>
<name>LICENSE</name>
</license>
</info>
<outputPath>/data/zzzz/static</outputPath>
<swaggerDirectory>/data/zzzz/swaggerFile</swaggerDirectory>
<attachSwaggerArtifact>true</attachSwaggerArtifact>
</apiSource>
</apiSources>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Dependency:
<dependency>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.0.0</version>
</dependency>
Still no documentation is generated. Where did I do wrong? Please help me. Thanks.
Upvotes: 1
Views: 4955
Reputation: 1606
Maven Dependency::
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
Annotate configuration class with and add below code in conf class.
@Configuration
@EnableWebMvc
@EnableSwagger2
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()).directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class)
.useDefaultResponseMessages(false)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
@SuppressWarnings("deprecation")
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
" REST API",
"XXX Rest API for XXX authentication and Loan creation.",
"Mer V1.1",
"Terms of service",
"ER",
"License of API",
"");
return apiInfo;
}
Controller::
@RestController
@Api("/resource")
public class Controller {
}
After that hit below url in browser: http://localhost:ip/ApplicationName/swagger-ui.html
Upvotes: 0