diff --git a/pom.xml b/pom.xml index 2d8e109..149851f 100644 --- a/pom.xml +++ b/pom.xml @@ -31,16 +31,17 @@ org.springframework.boot spring-boot-starter-log4j2 + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.4.0 + + org.springframework.boot spring-boot-starter-test test - - org.projectlombok - lombok - true - @@ -48,14 +49,6 @@ org.springframework.boot spring-boot-maven-plugin - - - - org.project-lombok - lombok - - - diff --git a/src/main/java/com/app/config/OpenAPIConfig.java b/src/main/java/com/app/config/OpenAPIConfig.java new file mode 100644 index 0000000..4a91b0a --- /dev/null +++ b/src/main/java/com/app/config/OpenAPIConfig.java @@ -0,0 +1,42 @@ +package com.app.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.servers.Server; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +public class OpenAPIConfig { + + @Value("${app.openapi.endpoint}") + private String applicationEndpoint; + + @Bean + public OpenAPI myOpenAPI() { + Server devServer = new Server(); + devServer.setUrl(applicationEndpoint); + devServer.setDescription("Server Endpoint"); + + Contact contact = new Contact(); + contact.setEmail("faiz.krm@gmail.com"); + contact.setName("Faiz Akram"); + contact.setUrl("https://www.faizkram.com"); + + License mitLicense = new License().name("Development License").url("https://www.faizkram.com"); + + Info info = new Info() + .title("Tutorial Management API") + .version("1.0") + .contact(contact) + .description("This API exposes endpoints to manage tutorials.").termsOfService("https://www.faizkram.com") + .license(mitLicense); + + return new OpenAPI().info(info).servers(List.of(devServer)); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a494062..0e56644 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,3 +6,9 @@ spring: server: port: 8080 +springdoc: + swagger-ui: + path: /swagger-ui.html +app: + openapi: + endpoint: http://localhost:8080 \ No newline at end of file