Skip to content

Commit

Permalink
✨ Feature: FeignClient를 이용한 모델 API 연동 (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
ahnsugyeong authored Apr 6, 2024
1 parent 853a15f commit 58de018
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
5 changes: 5 additions & 0 deletions moodoodle-infrastructure/build.gradle
Original file line number Diff line number Diff line change
@@ -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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package zzangdol;

public interface InfrastructurePackageLocation {
}
Original file line number Diff line number Diff line change
@@ -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;

}
Original file line number Diff line number Diff line change
@@ -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;

}
Original file line number Diff line number Diff line change
@@ -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);

}
Original file line number Diff line number Diff line change
@@ -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);

}
Original file line number Diff line number Diff line change
@@ -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 {
}

This file was deleted.

2 changes: 1 addition & 1 deletion moodoodle-submodule

0 comments on commit 58de018

Please sign in to comment.