변하는 코드 분리하기 - 메소드 추출
2024. 7. 10. 16:01ㆍ토비의 스프링 6
WebApiExRateProvider의 구성
1. URI를 준비하고 예외처리를 위한 작업을 하는 코드
2. API를 실행하고, 서버로부터 받은 응답을 가져오는 코드
3. JSON 문자열을 파싱하고 필요한 환율정보를 추출하는 코드
2. API를 실행하고, 서버로부터 받은 응답을 가져오는 코드 = API를 호출하는 기술과 방법이 변경될 수 있음
3.JSON 문자열을 파싱하고 필요한 환율정보를 추출하는 코드 = API 응답의 JSON구조에 따라 정보 추출하는 방식이 변경
메소드 추출하기
private static BigDecimal parseExRate(String response) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
ExRateData data = mapper.readValue(response, ExRateData.class);
return data.rates().get("KRW");
}
private static String executeApi(URI uri) throws IOException {
String response;
HttpURLConnection connection = (HttpURLConnection) uri.toURL().openConnection();
try(BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));){
response = br.lines().collect(Collectors.joining());
}
return response;
}'토비의 스프링 6' 카테고리의 다른 글
| ApiExecutor 콜백과 메소드 주입 (0) | 2024.07.11 |
|---|---|
| 변하지 않는 코드 분리하기 (0) | 2024.07.10 |
| 도메인 오브젝트 테스트 (0) | 2024.07.08 |
| 학습 테스트(Learning Test) (0) | 2024.07.08 |
| 테스트와 DI (0) | 2024.07.08 |