워밍업 클럽 - 백엔드 2일차 과제

워밍업 클럽 - 백엔드 2일차 과제

문제 1 - add, minus, plus API

쿼리로 num1과 num2의 값을 받은 후 합, 차, 곱을 구해서 Response 객체로 반환했다.

    @GetMapping("/api/v1/calc")
    public CalculatorCalcResponse calcTwoNumbers(CalculatorCalcRequest request) {
        CalculatorCalcResponse response = new CalculatorCalcResponse();
        response.setAdd(request.getNum1() + request.getNum2());
        response.setMinus(request.getNum1() - request.getNum2());
        response.setMultiply(request.getNum1() * request.getNum2());
        return response;
    }

결과의 Response 객체는 다음과 같이 구현했다.

package com.warmup.libraryapp.dto.calculator.response;

public class CalculatorCalcResponse {
    private int add;
    private int minus;
    private int multiply;

    public int getAdd() {
        return add;
    }

    public void setAdd(int add) {
        this.add = add;
    }

    public int getMinus() {
        return minus;
    }

    public void setMinus(int minus) {
        this.minus = minus;
    }

    public int getMultiply() {
        return multiply;
    }

    public void setMultiply(int multiply) {
        this.multiply = multiply;
    }
}

결과는 다음과 같다.

image
문제 2 - 날짜 to 요일 API

컨트롤러에서 LocalDate를 이용하여 요일을 반환하도록 구현하였다.

@RestController
public class DateController {
    @GetMapping("/api/v1/day-of-the-week")
    public DayOfWeekResponse getDayOfWeek(@RequestParam String date) {
        LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ISO_DATE);
        String dayOfWeek = localDate.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.US).toUpperCase();
        DayOfWeekResponse response = new DayOfWeekResponse();
        response.setDayOfTheWeek(dayOfWeek);
        return response;
    }
}

결과의 Response 객체는 다음과 같이 구현했다.

public class DayOfWeekResponse {
    private String dayOfTheWeek;

    public String getDayOfTheWeek() {
        return dayOfTheWeek;
    }

    public void setDayOfTheWeek(String dayOfTheWeek) {
        this.dayOfTheWeek = dayOfTheWeek;
    }
}

결과는 다음과 같다.

image

문제 3 - Sum API

구현 방법

POST http://localhost:8080/api/v1/sums 로 json 오브젝트에 담긴 numbers 배열을 바디로 가져오도록 DTO를 만든다.

 

package com.warmup.libraryapp.dto.calculator.request;

import java.util.List;

public class CalculatorSumRequest {
    private List<Integer> numbers;

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

    public void setNumbers(List<Integer> numbers) {
        this.numbers = numbers;
    }
}

그리고 Stream API를 이용해서 sum을 반환하도록 했다.

@PostMapping("/api/v1/sums")
    public int sumNumbers(@RequestBody CalculatorSumRequest request) {
        return request.getNumbers().stream().mapToInt(Integer::intValue).sum();
    }

결과는 다음과 같다.

image

댓글을 작성해보세요.