diff --git a/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherController.java b/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherController.java new file mode 100644 index 00000000..0f6a0fe0 --- /dev/null +++ b/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherController.java @@ -0,0 +1,4 @@ +package com.waither.weatherservice.controller; + +public class WeatherController { +} diff --git a/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherTestController.java b/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherTestController.java index 6ba2d24c..0f808b5d 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherTestController.java +++ b/weather-service/src/main/java/com/waither/weatherservice/controller/WeatherTestController.java @@ -9,10 +9,10 @@ import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.core.JsonProcessingException; -import com.waither.weatherservice.dto.AccuweatherTestRequest; -import com.waither.weatherservice.dto.AirTestRequest; -import com.waither.weatherservice.dto.ForeCastTestRequest; -import com.waither.weatherservice.dto.MsgTestRequest; +import com.waither.weatherservice.dto.request.AccuweatherTestRequest; +import com.waither.weatherservice.dto.request.AirTestRequest; +import com.waither.weatherservice.dto.request.ForeCastTestRequest; +import com.waither.weatherservice.dto.request.MsgTestRequest; import com.waither.weatherservice.service.WeatherService; import lombok.RequiredArgsConstructor; diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/AccuweatherTestRequest.java b/weather-service/src/main/java/com/waither/weatherservice/dto/request/AccuweatherTestRequest.java similarity index 62% rename from weather-service/src/main/java/com/waither/weatherservice/dto/AccuweatherTestRequest.java rename to weather-service/src/main/java/com/waither/weatherservice/dto/request/AccuweatherTestRequest.java index b61db344..79d68329 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/dto/AccuweatherTestRequest.java +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/request/AccuweatherTestRequest.java @@ -1,4 +1,4 @@ -package com.waither.weatherservice.dto; +package com.waither.weatherservice.dto.request; public record AccuweatherTestRequest( double latitude, diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/AirTestRequest.java b/weather-service/src/main/java/com/waither/weatherservice/dto/request/AirTestRequest.java similarity index 53% rename from weather-service/src/main/java/com/waither/weatherservice/dto/AirTestRequest.java rename to weather-service/src/main/java/com/waither/weatherservice/dto/request/AirTestRequest.java index 8373b2e2..0d6b5db3 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/dto/AirTestRequest.java +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/request/AirTestRequest.java @@ -1,4 +1,4 @@ -package com.waither.weatherservice.dto; +package com.waither.weatherservice.dto.request; public record AirTestRequest( String searchDate diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/ForeCastTestRequest.java b/weather-service/src/main/java/com/waither/weatherservice/dto/request/ForeCastTestRequest.java similarity index 66% rename from weather-service/src/main/java/com/waither/weatherservice/dto/ForeCastTestRequest.java rename to weather-service/src/main/java/com/waither/weatherservice/dto/request/ForeCastTestRequest.java index 44acf314..be2dbc30 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/dto/ForeCastTestRequest.java +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/request/ForeCastTestRequest.java @@ -1,4 +1,4 @@ -package com.waither.weatherservice.dto; +package com.waither.weatherservice.dto.request; public record ForeCastTestRequest( int nx, diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/MsgTestRequest.java b/weather-service/src/main/java/com/waither/weatherservice/dto/request/MsgTestRequest.java similarity index 52% rename from weather-service/src/main/java/com/waither/weatherservice/dto/MsgTestRequest.java rename to weather-service/src/main/java/com/waither/weatherservice/dto/request/MsgTestRequest.java index 4f113864..60ebdf39 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/dto/MsgTestRequest.java +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/request/MsgTestRequest.java @@ -1,4 +1,4 @@ -package com.waither.weatherservice.dto; +package com.waither.weatherservice.dto.request; public record MsgTestRequest( String location diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/request/WeatherRequest.java b/weather-service/src/main/java/com/waither/weatherservice/dto/request/WeatherRequest.java new file mode 100644 index 00000000..d43122dc --- /dev/null +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/request/WeatherRequest.java @@ -0,0 +1,7 @@ +package com.waither.weatherservice.dto.request; + +import lombok.Builder; + +@Builder +public record WeatherRequest() { +} diff --git a/weather-service/src/main/java/com/waither/weatherservice/dto/response/WeatherResponse.java b/weather-service/src/main/java/com/waither/weatherservice/dto/response/WeatherResponse.java new file mode 100644 index 00000000..f6d3198b --- /dev/null +++ b/weather-service/src/main/java/com/waither/weatherservice/dto/response/WeatherResponse.java @@ -0,0 +1,7 @@ +package com.waither.weatherservice.dto.response; + +import lombok.Builder; + +@Builder +public record WeatherResponse() { +} diff --git a/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiException.java b/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiException.java deleted file mode 100644 index 6a6b8df2..00000000 --- a/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiException.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.waither.weatherservice.openapi; - -public class OpenApiException extends RuntimeException { - public OpenApiException(String message) { - super(message); - } -} diff --git a/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiUtil.java b/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiUtil.java index bf756fd8..991c7ed9 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiUtil.java +++ b/weather-service/src/main/java/com/waither/weatherservice/openapi/OpenApiUtil.java @@ -17,6 +17,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.waither.weatherservice.exception.WeatherExceptionHandler; +import com.waither.weatherservice.response.WeatherErrorCode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -69,14 +71,14 @@ public List callForeCastApi( .accept(MediaType.APPLICATION_JSON) .retrieve().bodyToMono(ForeCastOpenApiResponse.class) .onErrorResume(throwable -> { - throw new OpenApiException(RESPONSE_EXCEPTION_MSG); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); }) .block().getResponse(); if (response.getHeader().getResultCode().equals("00")) { return response.getBody().getItems().getItem(); } else { - throw new OpenApiException(response.getHeader().getResultMsg()); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); } } @@ -124,7 +126,7 @@ public List callDisasterMsgApi(String location) thro }) .retrieve().bodyToMono(String.class) .onErrorResume(throwable -> { - throw new OpenApiException(RESPONSE_EXCEPTION_MSG); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); }) .block(); @@ -135,7 +137,8 @@ public List callDisasterMsgApi(String location) thro return response.getDisasterMsg().get(1).getRow(); } else { String resultMsg = response.getDisasterMsg().get(0).getHead().get(2).getResultData().getResultMsg(); - throw new OpenApiException(resultMsg); + log.info("[*] OpenApi Error : {}", resultMsg); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); } } @@ -161,8 +164,11 @@ public List callAirKorea(String searchDate) throw AirKoreaOpenApiResponse.Response response = webClient.get() .uri(uri) .accept(MediaType.APPLICATION_JSON) - .retrieve().bodyToMono(AirKoreaOpenApiResponse.class) - .blockOptional().orElseThrow(() -> new OpenApiException(RESPONSE_EXCEPTION_MSG)).getResponse(); + .retrieve() + .bodyToMono(AirKoreaOpenApiResponse.class) + .blockOptional() + .orElseThrow(() -> new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR)) + .getResponse(); if (response.getHeader().getResultCode().equals("00")) { @@ -178,7 +184,8 @@ public List callAirKorea(String searchDate) throw return items; } else { - throw new OpenApiException(response.getHeader().getResultMsg()); + log.info("[*] OpenApi Error : {}", response.getHeader().getResultMsg()); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); } } @@ -215,7 +222,7 @@ public String callAccuweatherLocationApi(double latitude, double longitude) thro .accept(MediaType.APPLICATION_JSON) .retrieve().bodyToMono(String.class) .onErrorResume(throwable -> { - throw new OpenApiException(RESPONSE_EXCEPTION_MSG); + throw new WeatherExceptionHandler(WeatherErrorCode.WEATHER_OPENAPI_ERROR); }) .block(); diff --git a/weather-service/src/main/java/com/waither/weatherservice/response/WeatherErrorCode.java b/weather-service/src/main/java/com/waither/weatherservice/response/WeatherErrorCode.java index ba38a118..1c542b3e 100644 --- a/weather-service/src/main/java/com/waither/weatherservice/response/WeatherErrorCode.java +++ b/weather-service/src/main/java/com/waither/weatherservice/response/WeatherErrorCode.java @@ -11,7 +11,8 @@ @AllArgsConstructor public enum WeatherErrorCode implements BaseErrorCode { - WEATHER_ERROR_EXAMPLE(HttpStatus.BAD_REQUEST, "WEAT4000", "날씨 에러입니다."); + WEATHER_EXAMPLE_ERROR(HttpStatus.BAD_REQUEST, "WEAT4000", "날씨 에러입니다."), + WEATHER_OPENAPI_ERROR(HttpStatus.BAD_REQUEST, "WEAT4001", "OpenApi 관련 오류입니다."); private final HttpStatus httpStatus; private final String code;