About Me/인프런 워밍업 클럽

[인프런 워밍업 클럽 1기] BE 2일차 과제

블로그 주인장 2024. 4. 30.

BE 2일차 과제

인프런 워밍업 클럽 1기 BE 2일차 과제인 GET APIPOST API에 대한 문제를 구현해보겠습니다

 

 

문제1

[인프런 워밍업 클럽 1기] BE 2일차 과제 - BE 2일차 과제 - 문제1

 

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

 

해당 날짜에 맞는 요일을 반환해야하기 때문에

@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

 

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

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

 

 

본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다.

반응형

댓글