1. Add Dependencies
In your pom.xml
(for Maven), include Spring Boot and Springdoc OpenAPI:
<dependencies>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Springdoc OpenAPI -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.2.0</version>
</dependency>
<!-- Optional: Lombok for cleaner code -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
2. Create a Simple REST Controller
package com.example.demo.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Tag(name = "Greeting API", description = "API for greeting messages")
public class GreetingController {
@GetMapping("/greet/{name}")
@Operation(summary = "Greet a person by name")
public String greet(@PathVariable String name) {
return "Hello, " + name + "!";
}
}
3. Application Class
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4. Run the Application
Start your Spring Boot app (DemoApplication
).
Then access the OpenAPI UI (Swagger UI) at:
http://localhost:8080/swagger-ui/index.html
You should see your Greeting API documented automatically with Swagger.
✅ Optional: Customize OpenAPI Info
You can add a configuration class to customize metadata:
package com.example.demo.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OpenApiConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("My Spring Boot API")
.version("1.0")
.description("Example API with OpenAPI/Swagger"));
}
}