[WarmingUp 02] GET / POST API

밍디·2024년 5월 1일

WarmingUp

목록 보기
2/7
post-thumbnail

문제 1

두 수를 입력하면 연산 결과가 나오는 GET API.

Controller

    @GetMapping("/api/v1/calc")
    public CalcResponseDTO addMinusMultiply(CalcRequestDTO request) {
        return new CalcResponseDTO(request.getNum1(), request.getNum2());
    }

RequestDTO

public class CalcRequestDTO {

    private int num1;
    private int num2;

    public CalcRequestDTO(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    public int getNum1() {
        return num1;
    }

    public int getNum2() {
        return num2;
    }

}

ResponseDTO

public class CalcResponseDTO {

    private int add;
    private int minus;
    private int multiply;


    public CalcResponseDTO(int num1, int num2) {
        this.add = num1 + num2;
        this.minus = num1 - num2;
        this.multiply = num1 * num2;
    }

    public int getAdd() {
        return add;
    }

    public int getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }

}

결과
parameter: num1=1&num2=20

문제 2

날짜를 입력하면 무슨 요일인지 알려주는 GET API.
path:/api/v1/day-of-the-week

Controller

    @GetMapping("/api/v1/day-of-the-week")
    public DateResponseDTO dayOfTheWeek(@RequestParam("date")String date) {
        LocalDate localDate = LocalDate.parse(date);
        return new DateResponseDTO(localDate);

    }

ResponseDTO

public class DateResponseDTO {

    private DayOfWeek DayOfTheWeek;

    public DateResponseDTO(LocalDate localDate) {
        this.DayOfTheWeek = localDate.getDayOfWeek();
    }

    public DayOfWeek getDayOfTheWeek() {
        return DayOfTheWeek;
    }
}

결과
parameter: date=2024-05-01

문제 3

여러 수의 총 합을 반환하는 POST API.

Controller

    @PostMapping("api/v1/addAll")
    public int addAll(@RequestBody AddAllRequestDTO requset) {
        int sum = 0;
        for(int i : requset.getNums())
            sum += i;
        return sum;
    }

AddAllRequestDTO

public class AddAllRequestDTO {

    List<Integer> nums = new ArrayList<>();

    public List<Integer> getNums() {
        return nums;
    }
}

결과
parameter: "nums": [1, 2, 3, 4, 5]


과제를 하다보니 궁금해진
1. DTO와 도메인은 왜 분리할까?
2. JSON과 getter


0개의 댓글