728x90
반응형
문제 1번
// 문제 1번 - RequestParam 이용하기
@GetMapping("/api/v1/calc")
public Map<String, Integer> calculateTwoNumber(@RequestParam int num1, @RequestParam int num2) {
Map<String, Integer> response = new HashMap<>();
response.put("add", num1 + num2);
response.put("minus", num1 - num2);
response.put("multiply", num1 * num2);
return response;
}
- @RequestParam을 통해서 GET Method의 쿼리를 받았다.
- Map 자료구조를 통해서 Response 보냈다
- → Map 자료구조도 좋지만 CalculatorResponse라는 클래스를 만들어서 받는 것이 더 좋아보인다.
문제 2번
// 문제 2번 - LocalDate
@GetMapping("api/v1/day-of-the-week")
public Map<String, DayOfWeek> calculateDayOfWeek(@RequestParam String date) {
Map<String, DayOfWeek> response = new HashMap<>();
String[] arr = date.split("-");
int year = Integer.parseInt(arr[0]);
int month = Integer.parseInt(arr[1]);
int day = Integer.parseInt(arr[2]);
LocalDate request = LocalDate.of(year, month, day);
DayOfWeek dayOfWeek = request.getDayOfWeek();
response.put("dayOfWeek", dayOfWeek);
return response;
}
- @RequestParam을 통해서 GET Method의 쿼리를 받았다.
- '2023-01-01' 은 String 타입의 입력이다.
- LocalDate.of( 년, 월, 일) 형태이므로 '-' 기준으로 파싱한 후에 LocalDate 타입의 request를 만들었다.
- getDayOfWeek 메서드를 통해서 DatOfWeek 타입의 dayOfWeek를 받고 출력했다.
- LocalDate에 대해서 학습하기
문제 3번
import java.util.List;
public class NumberRequest {
private List<Integer> numbers;
// 왜 기본 생성자 추가해야하는거야?
public NumberRequest() {
}
public NumberRequest(List<Integer> numbers) {
this.numbers = numbers;
}
public List<Integer> getNumbers() {
return numbers;
}
}
// 문제 3번 - DTO 이용하기
@PostMapping("/api/v1/calc")
public int calculateNumbers(@RequestBody NumberRequest request) {
int response = 0;
for (int num : request.getNumbers()) {
response += num;
}
System.out.println(response);
return response;
}
- 요청바디의 리스트를 받기 위해서 DTO에 List 타입을 받로고 했으며 요청바디를 나타내는 @ReqeustBody도 붙여준다.
- 반환 결과가 JSON이 아닌 Integer이므로 List의 요소르 response에 각각 더해 결과를 반환한다.
- ★★★ [ERROR] 발생
- NumberRequest에서 기본 생성자를 추가하지 않으면 에러가 발생하는 이유는 무엇인가?
후속 과제 (누적)
- 커스텀 어노테이션 만들고 정리하기 (1일차 과제)
- LocalDate 정리하기 (2일차 과제)
- NumberRequest에서 기본 생성자를 추가하지 않으면 에러가 발생하는 이유는 무엇인가?
728x90
반응형
'스터디 > 인프런' 카테고리의 다른 글
[인프런 워밍업 스터디 클럽 0기- BE] 4일차 과제 (0) | 2024.03.11 |
---|---|
[인프런 워밍업 스터디 클럽 0기- BE] 4일차 강의 내용 정리(Section2) (0) | 2024.02.22 |
[인프런 워밍업 스터디 클럽 0기- BE] 3일차 강의 내용 정리(Section2) (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 2일차 강의 내용 정리 (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 1일차 과제 (0) | 2024.02.19 |