Bird
Raised Fist0
Spring Bootframework~20 mins

Generating client code from spec in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Spring Boot Client Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of the generated client method call?

Given a Spring Boot generated client from an OpenAPI spec, what will be the output when calling getUserById(5) if the server returns {"id":5,"name":"Alice"}?

Spring Boot
public User getUserById(int id) {
    // Generated client code
    ResponseEntity<User> response = restTemplate.getForEntity("/users/{id}", User.class, id);
    return response.getBody();
}

// Assume User class has fields id and name with getters
ANull because response body is not parsed
BUser object with id=5 and name='Alice'
CException thrown due to missing headers
DUser object with id=0 and name=null
Attempts:
2 left
💡 Hint

Think about how restTemplate.getForEntity works and what getBody() returns.

📝 Syntax
intermediate
2:00remaining
Which option correctly configures OpenAPI Generator for Spring Boot client code?

You want to generate a Spring Boot client from an OpenAPI spec using OpenAPI Generator CLI. Which command is correct?

Aopenapi-generator-cli generate -i api.yaml -g java-spring -o ./client
Bopenapi-generator-cli generate -i api.yaml -g springboot -o ./client
Copenapi-generator-cli generate -i api.yaml -g spring -o ./client
Dopenapi-generator-cli generate -i api.yaml -g springboot-client -o ./client
Attempts:
2 left
💡 Hint

Check the official generator names for Spring Boot clients.

🔧 Debug
advanced
2:30remaining
Why does the generated Spring Boot client fail with 404 on valid endpoint?

You generated a Spring Boot client from an OpenAPI spec. Calling getUserById(10) returns 404, but the server endpoint exists and works via curl. What is the likely cause?

AThe server does not support GET requests
BThe client is missing authentication headers
CThe base URL in the client is incorrect or missing
DThe User class is not annotated with @Entity
Attempts:
2 left
💡 Hint

Think about what differs between the client and curl calls.

❓ state_output
advanced
2:00remaining
What is the state of the client after calling an asynchronous generated method?

A Spring Boot client generated method getUserByIdAsync(5) returns a CompletableFuture<User>. After calling it, what is the state of the future immediately?

Spring Boot
CompletableFuture<User> future = client.getUserByIdAsync(5);
// Immediately after this line
AThe future is not done and will complete later with the User
BThe future is already completed with the User
CThe future is completed exceptionally with an error
DThe future is null
Attempts:
2 left
💡 Hint

Consider how asynchronous calls behave in Java.

🧠 Conceptual
expert
3:00remaining
Which statement about generating Spring Boot clients from OpenAPI specs is true?

Choose the correct statement about generating Spring Boot client code from OpenAPI specifications.

AGenerated clients do not support authentication mechanisms
BGenerated clients always include UI components for API testing
COpenAPI Generator only supports server code generation, not clients
DThe generated client code can be customized by modifying templates before generation
Attempts:
2 left
💡 Hint

Think about the flexibility of OpenAPI Generator.

Practice

(1/5)
1. What is the main benefit of generating client code from an API specification in Spring Boot projects?
easy
A. It automatically deploys the API to the cloud.
B. It saves time and reduces errors when calling APIs.
C. It replaces the need for a backend server.
D. It creates database schemas from the API.

Solution

  1. Step 1: Understand the purpose of client code generation

    Generating client code means creating ready-to-use code to call APIs, which saves manual coding effort.
  2. Step 2: Identify the main benefit in Spring Boot context

    This process reduces human errors and speeds up development by automating client creation.
  3. Final Answer:

    It saves time and reduces errors when calling APIs. -> Option B
  4. Quick Check:

    Client code generation = saves time and reduces errors [OK]
Hint: Remember: generated client code automates API calls [OK]
Common Mistakes:
  • Thinking it deploys APIs automatically
  • Confusing client code with backend code
  • Assuming it creates database schemas
2. Which command correctly generates Spring client code using openapi-generator-cli from a spec file named api.yaml?
easy
A. openapi-generator-cli generate -i api.yaml -g spring -o ./client
B. openapi-generator-cli create -i api.yaml -g springboot -o ./client
C. openapi-generator-cli generate -i api.yaml -g java -o ./client
D. openapi-generator-cli build -i api.yaml -g spring -o ./client

Solution

  1. Step 1: Identify the correct command syntax for code generation

    The command uses 'generate' to create code, '-i' for input spec, '-g' for generator type, and '-o' for output folder.
  2. Step 2: Match the correct generator for Spring client code

    The generator name for Spring client code is 'spring', not 'springboot' or 'java'.
  3. Final Answer:

    openapi-generator-cli generate -i api.yaml -g spring -o ./client -> Option A
  4. Quick Check:

    Correct command = generate + -g spring [OK]
Hint: Use 'generate' and '-g spring' for Spring client code [OK]
Common Mistakes:
  • Using 'create' or 'build' instead of 'generate'
  • Using wrong generator name like 'springboot'
  • Using '-g java' which is for Java server, not Spring client
3. Given the command openapi-generator-cli generate -i petstore.yaml -g spring -o ./client, what will be the main output?
medium
A. A Spring Boot server application implementing the API
B. A database migration script
C. A JavaScript client library for the API
D. A Spring client library to call the API endpoints

Solution

  1. Step 1: Analyze the generator option '-g spring'

    The 'spring' generator creates Spring client code, not server code or JavaScript libraries.
  2. Step 2: Understand the output folder './client'

    The generated code will be placed in './client' as a client library to call API endpoints.
  3. Final Answer:

    A Spring client library to call the API endpoints -> Option D
  4. Quick Check:

    Generator 'spring' = Spring client library [OK]
Hint: '-g spring' generates client code, not server or JS [OK]
Common Mistakes:
  • Confusing client code with server implementation
  • Expecting JavaScript code from Spring generator
  • Thinking it creates database scripts
4. You ran openapi-generator-cli generate -i api.yaml -g springboot -o ./client but got an error: Unknown generator: springboot. What is the likely cause?
medium
A. You need to install Java separately.
B. The input file 'api.yaml' is missing.
C. You used the wrong generator name 'springboot' instead of 'spring'.
D. The output folder './client' already exists.

Solution

  1. Step 1: Check the error message details

    The error says 'Unknown generator: springboot', indicating the generator name is invalid.
  2. Step 2: Verify correct generator name for Spring client

    The correct generator is 'spring', not 'springboot'. Using 'springboot' causes this error.
  3. Final Answer:

    You used the wrong generator name 'springboot' instead of 'spring'. -> Option C
  4. Quick Check:

    Error 'Unknown generator' = wrong generator name [OK]
Hint: Check generator name spelling carefully [OK]
Common Mistakes:
  • Typing 'springboot' instead of 'spring'
  • Ignoring error details
  • Assuming missing input file causes this error
5. You want to generate a Spring client from an OpenAPI spec but only want to include APIs tagged with 'user'. Which approach should you take?
hard
A. Modify the OpenAPI spec to only include 'user' tagged APIs before generation.
B. Manually delete unwanted APIs from the generated code after generation.
C. Use --ignore-file-override to exclude APIs by tag.
D. Use the --global-property apis=user option with openapi-generator-cli.

Solution

  1. Step 1: Understand filtering options in openapi-generator-cli

    The CLI does not support filtering APIs by tag directly during generation.
  2. Step 2: Consider practical ways to generate only 'user' APIs

    Modifying the OpenAPI spec to include only desired tags is the cleanest and recommended approach.
  3. Final Answer:

    Modify the OpenAPI spec to only include 'user' tagged APIs before generation. -> Option A
  4. Quick Check:

    Filter APIs by editing spec before generation [OK]
Hint: Filter APIs by editing spec before generating client [OK]
Common Mistakes:
  • Expecting CLI to filter APIs by tag automatically
  • Deleting code manually after generation (error-prone)
  • Using unsupported CLI options for filtering
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