8

Trying to configure swagger in spring boot 2.3.1.

Gradle Config

repositories {
    mavenCentral()
    maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    implementation "io.springfox:springfox-boot-starter:3.0.0-SNAPSHOT"
    compile('io.springfox:springfox-swagger2:3.0.0-SNAPSHOT')
    compile('io.springfox:springfox-swagger-ui:3.0.0-SNAPSHOT')
}

Swagger Config

@Configuration
@EnableSwagger2
public class ApplicationSwaggerConfig {
    @Bean
    public Docket employeeApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build()
                .apiInfo(getApiInfo());
    }

    //create api metadata that goes at the top of the generated page
    private ApiInfo getApiInfo() {
        return new ApiInfoBuilder()
                .title("Employee API")
                .version("1.0")
                .description("API for managing employees.")
                .contact(new Contact("Craig Golightly", "http://globomantics.com", "craig@globomantics.com"))
                .license("Apache License Version 2.0")
                .build();
    }
}

Controller

@RestController
public class TestController {
    @RequestMapping(value = "/HelloWorld", method = RequestMethod.GET)
    public String HelloWorld(){
        return "Hello World";
    }
}

Application

@SpringBootApplication
public class MeroRentalRestApiApplication {
    public static void main(String[] args) {
        SpringApplication.run(MeroRentalRestApiApplication.class, args);
    }
}

Error

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Jul 06 21:19:55 AEST 2020
There was an unexpected error (type=Not Found, status=404).

enter image description here

Here is the package reference enter image description here

San Jaisy
  • 15,327
  • 34
  • 171
  • 290
  • What about the `api-docs` endpoint? Is it available? – Clijsters Jul 06 '20 at 11:33
  • Same thing with the API-DOC http://localhost:8080/api/v2/api-docs – San Jaisy Jul 06 '20 at 12:23
  • Is there a `server.servlet.context-path` property present? If so, try adding the context path to the Swagger urls you're attempting to visit. – Michiel Jul 06 '20 at 12:59
  • @Michiel After adding server.servlet.contextPath=/swagger-ui.html. I can see { "_links" : { "profile" : { "href" : "http://localhost:8080/swagger-ui.html/profile" } } } – San Jaisy Jul 06 '20 at 13:26

3 Answers3

13

Able to solve the problem

Remove the below dependency

compile('io.springfox:springfox-swagger2:3.0.0-SNAPSHOT')
compile('io.springfox:springfox-swagger-ui:3.0.0-SNAPSHOT')

Remove the swagger 2 anotation

@EnableSwagger2

The navigation URL is http://localhost:8080/swagger-ui/index.html

Reference https://github.com/springfox/springfox/issues/3070

San Jaisy
  • 15,327
  • 34
  • 171
  • 290
3

In spring boot it works by simply adding this, no other dependencies needed:

<dependency>
 <groupId>io.springfox</groupId> 
<artifactId>springfox-boot-starter</artifactId>
 <version>3.0.0</version> 
</dependency>

The url is /swagger-ui/

  • 1
    That's no different from the previous answer. – AlBlue Dec 16 '20 at 19:42
  • 2
    In spring boot it works by simply adding this, no other dependencies needed: io.springfox springfox-boot-starter 3.0.0 The url is /swagger-ui/ – shrilata melgiri Dec 16 '20 at 19:56
  • Hello and welcome to StackOverflow! It seems you have given some useful information in your comment. If you would please move that into your answer, then remove the part of your answer which is the same as [Bossit's](https://stackoverflow.com/a/64450250/453435), and mention that your answer builds on Bossit's, then this answer will be much higher quality and won't be closed as a duplicate – Ky - Dec 16 '20 at 19:58
1

Adding these 2 dependencies in my pom.xml solved the problem

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

hope it may help someone

Bossit
  • 11
  • 1