워밍업 클럽 BE -2-

개나뇽·2024년 2월 26일
0

워밍업 클럽

목록 보기
2/3

간단한 API 만들기

문제 1번
두 수를 입력하여 덧셈, 뺄셈, 곱셉의 값이 나오는 GET API 작성
조건 쿼리 파라미는 num1, num2

{
"add" : "덧셈 결과"
"minus" : "덧셈 결과"
"multiply" : "덧셈 결과"
}

나는 위 json처럼 값을 출력하기 위해 Dto를 생성해 리턴 타입으로 받았다.

 @GetMapping("/api/v1/calc")
  public CalcResponse multi(@RequestParam(name = "num1") int num1,
      @RequestParam(name = "num2") int num2) {
    int add = num1 + num2;
    int minus = num1 - num2;
    int multiply = num1 * num2;
    return new CalcResponse(add, minus, multiply);
  }
  
  public class CalcResponse {
  private int addResult;
  private int minusResult;
  private int multiplyResult;
  }


원하는 값을 얻었으나 멘토님의 피드백으로는 계산로직은 Dto에 작성해주는것이 추후 서비스 레이어 계층을 깔끔히 하는데 도움이 된다고 말씀 주셨다.

문제 2번 입력한 날짜의 요일 출력
자바 8이후에 추가된 LocalDate를 이용해 쿼리 파라미터에 입력된 날짜의 요일을 구한다.

 @GetMapping("/api/v1/day-of-week")
  public String day(@RequestParam(name = "date") LocalDate date) {
    DayOfWeek dayOfWeek = date.getDayOfWeek();
    return dayOfWeek.toString();
  }

문제 3번 여러 수를 입력받아 총 합을 반환하는 POST API 작성
DTO에 Integer 리스트를 입력받아 반복문을 이용하여 총 합을 구하였다.

@PostMapping("/api/v1/add")
  public Integer addNumbers(@RequestBody AddRequestDto requestDto) {
    Integer sum = 0;
    List<Integer> req = requestDto.getNumbers();
    for (Integer i : req) {
      sum += i;
    }
    return sum;
  }
  
  public class AddRequestDto {
  private List<Integer> numbers = new ArrayList<>();

  public List<Integer> getNumbers() {
    return numbers;
  }
}


이 문제의 로직도 DTO에 계산로직을 넣으면 좋을거 같다.

참고자료
https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%84%9C%EB%B2%84%EA%B0%9C%EB%B0%9C-%EC%98%AC%EC%9D%B8%EC%9B%90/dashboard

profile
정신차려 이 각박한 세상속에서!!!

0개의 댓글