diff --git a/harmonizacao/README.md b/harmonizacao/README.md
new file mode 100644
index 00000000..e2872628
--- /dev/null
+++ b/harmonizacao/README.md
@@ -0,0 +1,36 @@
+# Harmonização de Vinhos
+
+Este é um projeto Java Spring Boot que fornece uma API REST para harmonização de vinhos. A API permite que os usuários obtenham informações sobre vinhos, obtenham sugestões de harmonização de vinhos e obtenham sugestões de harmonização de vinhos com o menu.
+Para executar esse serviço é utilizado o Spring AI, que é uma biblioteca Java para interagir com a API OpenAI.
+
+## Tecnologias Utilizadas
+
+- Java
+- Spring Boot
+- Spring AI
+- Maven
+
+## Configuração
+
+Para configurar o projeto, você precisa ter o Java e o Maven instalados. Em seguida, você pode clonar o repositório e executar `mvn install` para instalar as dependências necessárias.
+
+## Uso
+
+Você pode iniciar o aplicativo executando `mvn spring-boot:run`. O serviço estará disponível em `http://localhost:8085/swagger-ui/index.html`.
+
+## Endpoints
+
+### Pairing: Operações relacionadas a harmonização de vinhos
+
+GET
+- `/api/v1/pairing/pairings`: Retorna a harmonização do vinho
+
+GET
+- `/api/v1/pairing/menu`: Retorna a harmonização do vinho com o menu
+
+GET
+- `/api/v1/pairing/information`: Retorna informações sobre o vinho
+
+## Licença
+
+Este projeto está licenciado sob a Licença MIT - veja o arquivo `LICENSE.md` para detalhes
\ No newline at end of file
diff --git a/harmonizacao/pom.xml b/harmonizacao/pom.xml
index 9ef5624d..8618674d 100644
--- a/harmonizacao/pom.xml
+++ b/harmonizacao/pom.xml
@@ -43,6 +43,16 @@
spring-boot-starter-test
test
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.2.0
+
+
+ io.springfox
+ springfox-boot-starter
+ 3.0.0
+
diff --git a/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/configuration/SwaggerConfiguration.java b/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/configuration/SwaggerConfiguration.java
new file mode 100644
index 00000000..fd8e5c49
--- /dev/null
+++ b/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/configuration/SwaggerConfiguration.java
@@ -0,0 +1,34 @@
+package com.vinhonotas.harmonizacao.configuration;
+
+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.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SwaggerConfiguration {
+
+ @Bean
+ public OpenAPI openApiInformation() {
+ Server localServer = new Server()
+ .url("http://localhost:8085")
+ .description("Localhost Server URL");
+ Contact contact = new Contact()
+ .email("vanderlei.master@gmail.com")
+ .name("Vanderlei Kleinschmidt");
+ Info info = new Info()
+ .contact(contact)
+ .description("Api de harmonização de vinhos")
+ .title("Harmonização de Vinhos")
+ .version("V0.0.1")
+ .license(new License()
+ .name("Apache 2.0")
+ .url("http://springdoc.org"));
+ return new OpenAPI()
+ .info(info)
+ .addServersItem(localServer);
+ }
+}
diff --git a/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/interfaces/controllers/PairingController.java b/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/interfaces/controllers/PairingController.java
index 5efbaa38..7361d32a 100644
--- a/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/interfaces/controllers/PairingController.java
+++ b/harmonizacao/src/main/java/com/vinhonotas/harmonizacao/interfaces/controllers/PairingController.java
@@ -3,6 +3,8 @@
import com.vinhonotas.harmonizacao.application.services.PairingService;
import com.vinhonotas.harmonizacao.interfaces.dtos.inputs.WineInputDTO;
import com.vinhonotas.harmonizacao.interfaces.dtos.outputs.PairingResponseDTO;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
@@ -15,22 +17,26 @@
@RequestMapping("/api/v1/pairing")
@RequiredArgsConstructor
@Slf4j
+@Tag(name = "Pairing", description = "Operações relacionadas a harmonização de vinhos")
public class PairingController {
private final PairingService pairingService;
+ @Operation(summary = "Retorna informações sobre o vinho")
@GetMapping("/information")
public ResponseEntity getWineInformation(@RequestParam(value = "wine") WineInputDTO wine) {
PairingResponseDTO wineInformation = pairingService.getWineInformation(wine);
return ResponseEntity.ok(wineInformation);
}
+ @Operation(summary = "Retorna a harmonização do vinho")
@GetMapping("/pairings")
public ResponseEntity getWinePairing(@RequestParam(value = "wine") WineInputDTO wine) {
PairingResponseDTO winePairing = pairingService.getWinePairing(wine);
return ResponseEntity.ok(winePairing);
}
+ @Operation(summary = "Retorna a harmonização do vinho com o menu")
@GetMapping("/menu")
public ResponseEntity getMenuPairing(@RequestParam(value = "wine") WineInputDTO wine) {
PairingResponseDTO menuPairing = pairingService.getMenuPairing(wine);
diff --git a/harmonizacao/src/main/resources/application.properties b/harmonizacao/src/main/resources/application.properties
index 14f1dda2..cd190d3a 100644
--- a/harmonizacao/src/main/resources/application.properties
+++ b/harmonizacao/src/main/resources/application.properties
@@ -2,4 +2,5 @@ spring.config.import=optional:file:.env[.properties]
spring.application.name=harmonizacao
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-3.5-turbo
-server.port=8085
\ No newline at end of file
+server.port=8085
+springdoc.api-docs.path=/api-docs
\ No newline at end of file