BE 2일차 과제
인프런 워밍업 클럽 1기 BE 2일차 과제인 GET API와 POST API에 대한 문제를 구현해보겠습니다
문제1
![[인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제1 [인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제1](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
CalculatorResponse 라는 Dto를 구현하여 문제에 알맞게 리턴할 수 있도록 생성합니다.
public class CalculatorResponse {
private int add;
private int minus;
private int multiply;
public CalculatorResponse(int add, int minus, int multiply) {
this.add = add;
this.minus = minus;
this.multiply = multiply;
}
public int getAdd() {
return add;
}
public int getMinus() {
return minus;
}
public int getMultiply() {
return multiply;
}
}
아래의 코드는 조건에 맞게 컨트롤러를 구현한 내용입니다.
@RestController
public class CalculatorController {
@GetMapping("/api/v1/calc")
public CalculatorResponse addTwoNumbers(CalculatorAddRequest request) {
return new CalculatorResponse(
request.getNum1() + request.getNum2(),
request.getNum2() - request.getNum2(),
request.getNum3() * request.getNum2());
}
}
문제2
![[인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제2 [인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제2](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
해당 날짜에 맞는 요일을 반환해야하기 때문에
@RequestParam으로 받은 date 값을 localDate 형식으로 파싱한다.
그 후에 요일을 받기 위해 localDate.getDayOfWeek() 메서드를 활용하여 값을 추출한다.
이를 반환하면 MONDAY, TUESDAY 등 요일이 반환된다.
문제에 맞게 앞에 3개의 문자만 도출될 수 있도록 string.substring()을 활용하여 반환한다.
@GetMapping("/api/v1/day-of-the-week")
public Map<String, Object> getDayOfWeek(@RequestParam String date) {
LocalDate localDate = LocalDate.parse(date);
String sDate = localDate.getDayOfWeek().toString();
return Map.of("dayOfTheWeek", sDate.substring(0, 3));
}
문제3
![[인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제3 [인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제3](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
CalculatorSumRequest 라는 Dto를 구현하여 문제에 알맞게 리턴할 수 있도록
List<Integer> 를 선언하고, Getter 메서드를 구현합니다.
public class CalculatorSumRequest {
private List<Integer> numbers;
public CalculatorSumRequest() {
}
public CalculatorSumRequest(List<Integer> numbers) {
this.numbers = numbers;
}
public List<Integer> getNumbers() {
return numbers;
}
}
리스트에 있는 값을 모두 더한 값을 추출해야하기 때문에
리스트에 있는 값을 @RequestBody로 받으면 steam을 활용하여 sum 값을 도출해줍니다.
@PostMapping("/api/v1/sum")
public int addAllNumbers(@RequestBody CalculatorSumRequest request) {
List<Integer> numbers = request.getNumbers();
return numbers.stream()
.mapToInt(Integer::intValue).sum();
}
Reference
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다.
'About Me > 인프런 워밍업 클럽' 카테고리의 다른 글
[인프런 워밍업 클럽 1기] BE 4일차 과제 (0) | 2024.05.07 |
---|---|
[인프런 워밍업 클럽 1기] BE 3일차 과제 (0) | 2024.05.02 |
[인프런 워밍업 클럽 1기] BE 1일차 과제 (1) | 2024.04.29 |
댓글