About Me/인프런 워밍업 클럽

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

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

BE 2일차 과제

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

 

 

문제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

 

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

@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

 

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

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

 

 

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

반응형

댓글