인프런 워밍업 클럽 백엔드 - 두 번째 과제

인프런 워밍업 클럽 백엔드 - 두 번째 과제

문제 1

두 수를 입력하면, 다음과 같은 결과 나오는 GETAPI를 만들어 보자!

  • path : /api/v1/calc이다.

  • 쿼리 파라미터 : num1, num2


CalculatorRequest

package com.group.libraryapp.dto.test.request;

public class CalculatorRequest {

    private int num1;
    private int num2;

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

    public int getNum1() {
        return num1;
    }

    public int getNum2() {
        return num2;
    }
}

 

Calculator

package com.group.libraryapp.domain.test;

public class Calculator {

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

    public Calculator(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;
    }
}

문제 2

날짜를 입력하면, 몇 요일인지 알려주는 GET API를 만들어 보자!

path와 쿼리 파라미터는 임의로 만들어도 상관없다.

DateRequest

package com.group.libraryapp.dto.test.request;

public class DateRequest {

    private String date;

    public DateRequest(String date) {
        this.date = date;
    }

    public String getDate() {
        return date;
    }
}

DayOfTheWeek

package com.group.libraryapp.domain.test;

public class DayOfTheWeek {

    private String dayOfTheWeek;

    public DayOfTheWeek(String date) {
        this.dayOfTheWeek = date;
    }

    public String getDayOfWeek() {
        return dayOfTheWeek;
    }
}

문제 3

여러 수를 받아 총 합을 반환하는 POST API를 만들어 보자!

API에서 받는 Body는 다음과 같은 형태이다. (HINT : 요청을 받는 DTO에서 List를 갖고 있으면 JSON의 배열을 받을 수 있습니다.)

SumRequest

 package com.group.libraryapp.dto.test.request;

import java.util.List;

public class SumRequest {

    private List<Integer> numbers;

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


Controller

package com.group.libraryapp.controller;

import com.group.libraryapp.domain.test.Calculator;
import com.group.libraryapp.domain.test.DayOfTheWeek;
import com.group.libraryapp.dto.test.request.CalculatorRequest;
import com.group.libraryapp.dto.test.request.DateRequest;
import com.group.libraryapp.dto.test.request.SumRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.time.DayOfWeek;
import java.time.LocalDate;

@RestController
public class TestController {

    @GetMapping("/api/v1/calc")
    public Calculator calc(CalculatorRequest request) {
        int num1 = request.getNum1();
        int num2 = request.getNum2();
        int add = num1 + num2;
        int minus = num1 - num2;
        int multiply = num1 * num2;
        return new Calculator(add, minus, multiply);
    }

    @GetMapping("/api/v1/day-of-the-week")
    public DayOfTheWeek dayOfTheWeek(DateRequest request) {
        DayOfWeek dayOfWeek = LocalDate.parse(request.getDate()).getDayOfWeek();
        int week = dayOfWeek.getValue();
        String date = "";

        switch (week) {
            case 1: date = "MON";
                break;
            case 2: date = "TUE";
                break;
            case 3: date = "WED";
                break;
            case 4: date = "THU";
                break;
            case 5: date = "FRI";
                break;
            case 6: date = "SAT";
                break;
            case 7: date = "SUN";
                break;
        }

        return new DayOfTheWeek(date);
    }

    @PostMapping("/api/v1/sum")
    public Integer sum(@RequestBody SumRequest request) {
        int sum = 0;
        for (int i : request.getNumbers()) {
            sum += i;
        }
        return sum;
    }
}

댓글을 작성해보세요.

채널톡 아이콘