diff --git a/bootstrap/src/main/resources/application.yml b/bootstrap/src/main/resources/application.yml index 02be6c0..fadef8c 100644 --- a/bootstrap/src/main/resources/application.yml +++ b/bootstrap/src/main/resources/application.yml @@ -14,6 +14,16 @@ spring: format_sql: true show-sql: true + jackson: + serialization: + INDENT_OUTPUT: true + +springdoc: + api-docs: + path: /v3/api-docs + swagger-ui: + path: /swagger-ui + server: port: 8080 servlet: diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/config/ApiErrorController.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiErrorController.java similarity index 95% rename from infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/config/ApiErrorController.java rename to infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiErrorController.java index 87f7a01..87df85f 100644 --- a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/config/ApiErrorController.java +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiErrorController.java @@ -1,4 +1,4 @@ -package com.pablotj.portfolio.infrastructure.rest.config; +package com.pablotj.portfolio.infrastructure.rest.api; import org.springframework.boot.web.error.ErrorAttributeOptions; import org.springframework.boot.web.servlet.error.ErrorAttributes; diff --git a/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiRootController.java b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiRootController.java new file mode 100644 index 0000000..ef951d4 --- /dev/null +++ b/infrastructure/src/main/java/com/pablotj/portfolio/infrastructure/rest/api/ApiRootController.java @@ -0,0 +1,31 @@ +package com.pablotj.portfolio.infrastructure.rest.api; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping +public class ApiRootController { + + @GetMapping + public ResponseEntity> root() { + Map response = Map.of( + "api", "Portfolio API", + "version", "1.0", + "doc", "/v3/api-docs", + "swagger", "/swagger-ui", + "endpoints", List.of( + Map.of("path", "/v1/projects", "description", "Manage projects"), + Map.of("path", "/v1/experience", "description", "Experience entries"), + Map.of("path", "/v1/about", "description", "About me") + ) + ); + + return ResponseEntity.ok(response); + } +}