Bird
Raised Fist0
Spring Bootframework~10 mins

SpringDoc OpenAPI setup in Spring Boot - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add the SpringDoc OpenAPI dependency in Maven's <dependencies> section.

Spring Boot
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>[1]</artifactId>
    <version>1.7.0</version>
</dependency>
Drag options to blanks, or click blank then click option'
Aspringdoc-openapi-ui
Bspring-boot-starter-web
Cspringdoc-openapi-security
Dspring-boot-starter-data-jpa
Attempts:
3 left
💡 Hint
Common Mistakes
Using unrelated dependencies like spring-boot-starter-web.
Confusing security or JPA starters with OpenAPI UI.
2fill in blank
medium

Complete the annotation to define OpenAPI documentation metadata in a Spring Boot application.

Spring Boot
@[1]
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
Drag options to blanks, or click blank then click option'
AEnableOpenApiDoc
BEnableSwagger2
CEnableOpenApi
DOpenAPIDefinition
Attempts:
3 left
💡 Hint
Common Mistakes
Using @EnableSwagger2 which is for older Swagger integration.
Using non-existent annotations like @EnableOpenApi.
3fill in blank
hard

Fix the error in the OpenAPI info bean definition by completing the missing method call.

Spring Boot
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.OpenAPI;

@Bean
public OpenAPI customOpenAPI() {
    return new OpenAPI()
        .info(new Info().title("My API").version([1]));
}
Drag options to blanks, or click blank then click option'
A"1.0"
Bv1
C1.0
D"v1"
Attempts:
3 left
💡 Hint
Common Mistakes
Passing version without quotes causing a compile error.
Using incorrect version format.
4fill in blank
hard

Fill both blanks to configure the OpenAPI bean with a description and contact email.

Spring Boot
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.OpenAPI;

@Bean
public OpenAPI apiInfo() {
    return new OpenAPI()
        .info(new Info()
            .description([1])
            .contact(new Contact().email([2])));
}
Drag options to blanks, or click blank then click option'
A"This is my API"
B"contact@example.com"
C"support@domain.com"
D"API description here"
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping description and email values.
Not using quotes around strings.
5fill in blank
hard

Fill all three blanks to create a SpringDoc OpenAPI bean with title, version, and license name.

Spring Boot
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.OpenAPI;

@Bean
public OpenAPI openApiConfig() {
    return new OpenAPI()
        .info(new Info()
            .title([1])
            .version([2])
            .license(new License().name([3])));
}
Drag options to blanks, or click blank then click option'
A"Sample API"
B"2.0"
C"Apache 2.0"
D"My API"
Attempts:
3 left
💡 Hint
Common Mistakes
Using unquoted strings causing errors.
Mixing up license and version values.

Practice

(1/5)
1. What is the main purpose of adding springdoc-openapi-starter-webmvc-ui dependency in a Spring Boot project?
easy
A. To configure logging for the application
B. To enable database connectivity
C. To automatically generate live API documentation for the application
D. To add security features to the application

Solution

  1. Step 1: Understand the role of springdoc-openapi-starter-webmvc-ui

    This dependency integrates SpringDoc OpenAPI with Spring Boot to generate live API docs automatically.
  2. Step 2: Identify the purpose of the dependency

    It provides a user interface and backend support to display API documentation without manual setup.
  3. Final Answer:

    To automatically generate live API documentation for the application -> Option C
  4. Quick Check:

    SpringDoc dependency = live API docs [OK]
Hint: SpringDoc dependency creates live API docs automatically [OK]
Common Mistakes:
  • Confusing it with database or security dependencies
  • Thinking it configures logging
  • Assuming manual doc writing is still needed
2. Which of the following is the correct way to define a basic OpenAPI bean in a Spring Boot application to customize API info?
easy
A. @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().name("API").ver("1.0")); }
B. @Bean public OpenAPI customOpenAPI() { return new OpenAPI().setTitle("API").setVersion("1.0"); }
C. @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info("API", "1.0"); }
D. @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("API").version("1.0")); }

Solution

  1. Step 1: Recall the OpenAPI bean syntax

    The OpenAPI bean requires an Info object with title and version set via methods like title() and version().
  2. Step 2: Compare options with correct method names

    Only @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("API").version("1.0")); } uses correct chaining: new OpenAPI().info(new Info().title("API").version("1.0"))
  3. Final Answer:

    @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("API").version("1.0")); } -> Option D
  4. Quick Check:

    OpenAPI bean uses info(new Info().title().version()) [OK]
Hint: Use Info().title() and .version() methods inside OpenAPI bean [OK]
Common Mistakes:
  • Using incorrect method names like setTitle or info(String, String)
  • Passing strings directly instead of Info object
  • Using non-existent methods like name() or ver()
3. Given this Spring Boot configuration snippet, what will be the URL path to access the Swagger UI documentation?
@SpringBootApplication
public class DemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }
}

Assuming springdoc-openapi-starter-webmvc-ui is added as dependency and no custom properties are set.
medium
A. /swagger-ui.html
B. /swagger-ui/index.html
C. /api-docs
D. /openapi-ui

Solution

  1. Step 1: Recall default Swagger UI path with SpringDoc

    SpringDoc by default serves Swagger UI at /swagger-ui/index.html
  2. Step 2: Eliminate other options

    /swagger-ui.html is old Swagger path, /api-docs is for JSON docs, /openapi-ui is invalid default
  3. Final Answer:

    /swagger-ui/index.html -> Option B
  4. Quick Check:

    Default Swagger UI path = /swagger-ui/index.html [OK]
Hint: Swagger UI default path ends with /swagger-ui/index.html [OK]
Common Mistakes:
  • Using old Swagger UI path /swagger-ui.html
  • Confusing JSON docs path with UI path
  • Assuming custom paths without configuration
4. You added the springdoc-openapi-starter-webmvc-ui dependency but when you run your Spring Boot app, the Swagger UI page shows a 404 error. What is the most likely cause?
medium
A. You are trying to access the Swagger UI at the wrong URL
B. You did not include the springdoc-openapi-starter-webmvc-ui dependency correctly
C. You have not defined an OpenAPI bean in your configuration
D. You forgot to add the @SpringBootApplication annotation

Solution

  1. Step 1: Check common reasons for 404 on Swagger UI

    Missing dependency or wrong annotation usually cause app startup errors, not 404 on UI page.
  2. Step 2: Verify URL correctness

    Swagger UI default URL is /swagger-ui/index.html, accessing other URLs like /swagger-ui.html causes 404.
  3. Final Answer:

    You are trying to access the Swagger UI at the wrong URL -> Option A
  4. Quick Check:

    404 on Swagger UI usually means wrong URL [OK]
Hint: Check Swagger UI URL carefully if 404 occurs [OK]
Common Mistakes:
  • Assuming missing OpenAPI bean causes 404
  • Thinking missing @SpringBootApplication causes 404 instead of startup failure
  • Ignoring URL path correctness
5. You want to customize your Spring Boot API documentation with a title "My API" and version "2.0" using SpringDoc. Which code snippet correctly achieves this and ensures the OpenAPI bean is recognized by Spring?
hard
A. @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); }
B. @Component public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); }
C. public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); }
D. @Configuration public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); }

Solution

  1. Step 1: Ensure the method is a Spring bean

    To register the OpenAPI object, the method must be annotated with @Bean inside a configuration class.
  2. Step 2: Check the code snippet correctness

    @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); } correctly uses @Bean annotation and returns new OpenAPI().info(new Info().title("My API").version("2.0"))
  3. Final Answer:

    @Bean public OpenAPI customOpenAPI() { return new OpenAPI().info(new Info().title("My API").version("2.0")); } -> Option A
  4. Quick Check:

    Use @Bean annotation to register OpenAPI bean [OK]
Hint: Use @Bean annotation on method returning OpenAPI [OK]
Common Mistakes:
  • Omitting @Bean annotation so Spring ignores the method
  • Using @Component or @Configuration on method instead of class
  • Not returning an OpenAPI object with info set
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard