diff --git a/src/main/java/com/team/neorangloa/domain/user/controller/UserController.java b/src/main/java/com/team/neorangloa/domain/user/controller/UserController.java index 61049c6..8e4e2c4 100644 --- a/src/main/java/com/team/neorangloa/domain/user/controller/UserController.java +++ b/src/main/java/com/team/neorangloa/domain/user/controller/UserController.java @@ -13,16 +13,20 @@ import com.team.neorangloa.global.result.ResultCode; import com.team.neorangloa.global.result.ResultResponse; import lombok.RequiredArgsConstructor; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.validation.Valid; +import java.net.URI; +import java.net.URISyntaxException; @RestController @RequiredArgsConstructor @RequestMapping("/api/v1/user") public class UserController { private final UserService userService; + private final RestTemplate restTemplate; @PostMapping public ResponseEntity signup( @@ -57,4 +61,21 @@ public ResponseEntity updatePassword(@LoginUser User loginUser, userService.updatePassword(logInUserId, updatePasswordRequest); return ResponseEntity.ok(ResultResponse.of(ResultCode.UPDATE_USER_PASSWORD_SUCCESS)); } + + + @GetMapping("/charactersInfo/{characterName}") + public ResponseEntity getCharactersInfo(@RequestHeader("API-Key") String apiKey, + @PathVariable String characterName, + @RequestParam(required = false, defaultValue = "") String filter) { + String apiUrl = "https://developer-lostark.game.onstove.com/armories/characters/" + characterName +"/"+ filter; + + HttpHeaders headers = new HttpHeaders(); + headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE); + headers.set(HttpHeaders.AUTHORIZATION, apiKey); + + HttpEntity httpEntity = new HttpEntity<>(headers); + ResponseEntity response = restTemplate.exchange(apiUrl, HttpMethod.GET, httpEntity, String.class); + + return ResponseEntity.ok(response.getBody()); + } } \ No newline at end of file diff --git a/src/main/java/com/team/neorangloa/global/config/AppConfig.java b/src/main/java/com/team/neorangloa/global/config/AppConfig.java new file mode 100644 index 0000000..5c2e861 --- /dev/null +++ b/src/main/java/com/team/neorangloa/global/config/AppConfig.java @@ -0,0 +1,13 @@ +package com.team.neorangloa.global.config; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class AppConfig { + @Bean + public RestTemplate restTemplate(RestTemplateBuilder builder) { + return builder.build(); + } +} diff --git a/src/main/java/com/team/neorangloa/global/config/WebConfig.java b/src/main/java/com/team/neorangloa/global/config/WebConfig.java index 17a81f5..aeefaa3 100644 --- a/src/main/java/com/team/neorangloa/global/config/WebConfig.java +++ b/src/main/java/com/team/neorangloa/global/config/WebConfig.java @@ -34,20 +34,11 @@ public void addArgumentResolvers(List resolvers){ @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOrigins("http://localhost:3000"); + .allowedOrigins("http://localhost:3000") + .allowedMethods("*") + .allowedHeaders("*") + .allowCredentials(true) + .maxAge(3600); } - // @Override -// public void configureMessageConverters(List> converters) { -// converters.add(mappingJackson2HttpMessageConverter()); -// } -// -// @Bean -// public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { -// MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); -// // JSON 형식으로 변환하기 위해 설정 -// // 필요에 따라 ObjectMapper의 설정을 추가로 수정할 수 있습니다. -// // 예시: converter.getObjectMapper().setDateFormat(new SimpleDateFormat("yyyy-MM-dd")); -// return converter; -// } }