From 58de018281e8d39507e55bf88c74e3d39e82a9c9 Mon Sep 17 00:00:00 2001 From: Ahn Su-gyeong Date: Sat, 6 Apr 2024 22:26:40 +0900 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Feature:=20FeignClient=EB=A5=BC=20?= =?UTF-8?q?=EC=9D=B4=EC=9A=A9=ED=95=9C=20=EB=AA=A8=EB=8D=B8=20API=20?= =?UTF-8?q?=EC=97=B0=EB=8F=99=20(#16)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moodoodleapi/MoodoodleApiApplication.java | 5 +++-- .../common/HealthCheckController.java | 2 -- moodoodle-infrastructure/build.gradle | 5 +++++ .../zzangdol/InfrastructurePackageLocation.java | 4 ++++ .../src/main/java/zzangdol/dto/ContentDto.java | 14 ++++++++++++++ .../src/main/java/zzangdol/dto/MessageDto.java | 14 ++++++++++++++ .../feign/client/Text2ImageModelClient.java | 15 +++++++++++++++ .../client/TextEmotionAnalysisModelClient.java | 15 +++++++++++++++ .../java/zzangdol/feign/config/FeignConfig.java | 13 +++++++++++++ .../MoodoodleInfrastructureApplication.java | 13 ------------- moodoodle-submodule | 2 +- 11 files changed, 84 insertions(+), 18 deletions(-) create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/InfrastructurePackageLocation.java create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/dto/ContentDto.java create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/dto/MessageDto.java create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/feign/client/Text2ImageModelClient.java create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/feign/client/TextEmotionAnalysisModelClient.java create mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/feign/config/FeignConfig.java delete mode 100644 moodoodle-infrastructure/src/main/java/zzangdol/moodoodleinfrastructure/MoodoodleInfrastructureApplication.java diff --git a/moodoodle-api/src/main/java/zzangdol/moodoodleapi/MoodoodleApiApplication.java b/moodoodle-api/src/main/java/zzangdol/moodoodleapi/MoodoodleApiApplication.java index c92d0b4..28a5bfc 100644 --- a/moodoodle-api/src/main/java/zzangdol/moodoodleapi/MoodoodleApiApplication.java +++ b/moodoodle-api/src/main/java/zzangdol/moodoodleapi/MoodoodleApiApplication.java @@ -4,13 +4,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; import zzangdol.config.JpaConfig; +import zzangdol.feign.config.FeignConfig; -@Import(JpaConfig.class) +@Import({JpaConfig.class, FeignConfig.class}) @SpringBootApplication public class MoodoodleApiApplication { public static void main(String[] args) { - System.setProperty("spring.config.name", "application-domain"); + System.setProperty("spring.config.name", "application-domain,application-infrastructure"); SpringApplication.run(MoodoodleApiApplication.class, args); } diff --git a/moodoodle-api/src/main/java/zzangdol/moodoodleapi/common/HealthCheckController.java b/moodoodle-api/src/main/java/zzangdol/moodoodleapi/common/HealthCheckController.java index 2894de5..08653a3 100644 --- a/moodoodle-api/src/main/java/zzangdol/moodoodleapi/common/HealthCheckController.java +++ b/moodoodle-api/src/main/java/zzangdol/moodoodleapi/common/HealthCheckController.java @@ -2,9 +2,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; -import zzangdol.moodoodlecommon.exception.GeneralException; import zzangdol.moodoodlecommon.response.ApiResponse; -import zzangdol.moodoodlecommon.response.status.ErrorStatus; @RestController public class HealthCheckController { diff --git a/moodoodle-infrastructure/build.gradle b/moodoodle-infrastructure/build.gradle index 67f3a28..3aca537 100644 --- a/moodoodle-infrastructure/build.gradle +++ b/moodoodle-infrastructure/build.gradle @@ -1,6 +1,11 @@ dependencies { + // spring boot implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' + implementation 'org.springframework.boot:spring-boot-starter-web' + + // feign + implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.1.1' } task copyYML(type: Copy) { diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/InfrastructurePackageLocation.java b/moodoodle-infrastructure/src/main/java/zzangdol/InfrastructurePackageLocation.java new file mode 100644 index 0000000..ee06a4f --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/InfrastructurePackageLocation.java @@ -0,0 +1,4 @@ +package zzangdol; + +public interface InfrastructurePackageLocation { +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/dto/ContentDto.java b/moodoodle-infrastructure/src/main/java/zzangdol/dto/ContentDto.java new file mode 100644 index 0000000..2ed3da7 --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/dto/ContentDto.java @@ -0,0 +1,14 @@ +package zzangdol.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class ContentDto { + + private String content; + +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/dto/MessageDto.java b/moodoodle-infrastructure/src/main/java/zzangdol/dto/MessageDto.java new file mode 100644 index 0000000..bc3bb55 --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/dto/MessageDto.java @@ -0,0 +1,14 @@ +package zzangdol.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class MessageDto { + + private String message; + +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/Text2ImageModelClient.java b/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/Text2ImageModelClient.java new file mode 100644 index 0000000..21566d9 --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/Text2ImageModelClient.java @@ -0,0 +1,15 @@ +package zzangdol.feign.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import zzangdol.dto.ContentDto; +import zzangdol.dto.MessageDto; + +@FeignClient(name = "text2ImageModelClient", url = "${outer-api.text-2-image.url}") +public interface Text2ImageModelClient { + + @GetMapping + MessageDto getMessage(@RequestBody ContentDto request); + +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/TextEmotionAnalysisModelClient.java b/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/TextEmotionAnalysisModelClient.java new file mode 100644 index 0000000..c02891b --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/feign/client/TextEmotionAnalysisModelClient.java @@ -0,0 +1,15 @@ +package zzangdol.feign.client; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import zzangdol.dto.ContentDto; +import zzangdol.dto.MessageDto; + +@FeignClient(name = "textEmotionAnalysisModelClient", url = "${outer-api.text-emotion-analysis.url}") +public interface TextEmotionAnalysisModelClient { + + @GetMapping + MessageDto getMessage(@RequestBody ContentDto request); + +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/feign/config/FeignConfig.java b/moodoodle-infrastructure/src/main/java/zzangdol/feign/config/FeignConfig.java new file mode 100644 index 0000000..fe5fddf --- /dev/null +++ b/moodoodle-infrastructure/src/main/java/zzangdol/feign/config/FeignConfig.java @@ -0,0 +1,13 @@ +package zzangdol.feign.config; + +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.cloud.openfeign.FeignAutoConfiguration; +import org.springframework.context.annotation.Configuration; +import zzangdol.InfrastructurePackageLocation; + +@Configuration +@ImportAutoConfiguration({FeignAutoConfiguration.class}) +@EnableFeignClients(basePackageClasses = InfrastructurePackageLocation.class) +public class FeignConfig { +} diff --git a/moodoodle-infrastructure/src/main/java/zzangdol/moodoodleinfrastructure/MoodoodleInfrastructureApplication.java b/moodoodle-infrastructure/src/main/java/zzangdol/moodoodleinfrastructure/MoodoodleInfrastructureApplication.java deleted file mode 100644 index ec0e030..0000000 --- a/moodoodle-infrastructure/src/main/java/zzangdol/moodoodleinfrastructure/MoodoodleInfrastructureApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package zzangdol.moodoodleinfrastructure; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class MoodoodleInfrastructureApplication { - - public static void main(String[] args) { - SpringApplication.run(MoodoodleInfrastructureApplication.class, args); - } - -} diff --git a/moodoodle-submodule b/moodoodle-submodule index d76ef0b..9041a61 160000 --- a/moodoodle-submodule +++ b/moodoodle-submodule @@ -1 +1 @@ -Subproject commit d76ef0b1cfb186474b1c9999318b272f86b82e56 +Subproject commit 9041a617acc3367f4f5a026bf7b9a5f7df494725