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

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

문제 1

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

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

  • 쿼리 파라미터 : num1, num2

{
  "add": 덧셈결과,
  "minus": 뺄셈결과,
  "multiply": 곱셈결과
}

dto/calculator/request/CalculatorRequest.java

public class CalculatorRequest {

    private final int num1;
    private final int num2;

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

    public int getNum1() {
        return num1;
    }

    public int getNum2() {
        return num2;
    }
}

dto/calculator/response/CalculatorResponse.java

public class CalculatorResponse {
    private final int add;
    private final int minus;
    private final 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 getMultiply() {
        return multiply;
    }

    public int getMinus() {
        return minus;
    }
}

controller/calculator/CalculatorController.java

@RestController
public class CalculatorController {
    @GetMapping("/api/v1/calc") // GET /api/v1/calc
    public CalculatorResponse calculateTwoNumbers(CalculatorRequest request) {
        int add = request.getNum1() + request.getNum2();
        int minus = request.getNum1() - request.getNum2();
        int multiply = request.getNum1() * request.getNum2();
        return new CalculatorResponse(add, minus, multiply);
    }
}

실행결과

image


문제 2

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

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


dto/study/DayResponse.java

public class DayResponse {
    private final String dayOfWeek;

    public DayResponse(String dayOfWeek) {
        this.dayOfWeek = dayOfWeek;
    }

    public String getDayOfWeek() {
        return dayOfWeek;
    }
}

controller/study/DayController.java

@RestController
public class DayController {

    @GetMapping("/day") // GET /day
    public DayResponse dayOfWeek(@RequestParam String date) {
        LocalDate localDate = LocalDate.parse(date);
        String dayOfWeek = localDate.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.US);
        return new DayResponse(dayOfWeek);
    }
}

실행결과

image


 

문제 3

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

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

{
  "numbers": [1, 2, 3, 4, 5]
}

반환 결과

15

dto/calculator/request/MultiAddRequest.java

public class MultiAddRequest {
    private List<Integer> numbers;

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

    public MultiAddRequest() {
    }

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

dto/calculator/response/MultiAddResponse.java

public class MultiAddResponse {
    private final Integer sum;

    public MultiAddResponse(Integer sum) {
        this.sum = sum;
    }

    public Integer getSum() {
        return sum;
    }
}

controller/calculator/CalculatorController.java

@RestController
public class MultiAddController {
    @PostMapping("/multi")
    public MultiAddResponse MultiAdd(@RequestBody MultiAddRequest request) {
        int sum = request.getNumbers().stream()
                .mapToInt(i -> i)
                .sum();
        return new MultiAddResponse(sum);
    }
}

 

실행 결과

image

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘