[인프런 워밍업 클럽] 2일차 GET POST API 만들어 보자

문제 1 : 두 수를 입력 하면 다음과 같은 결과가 나오는 API 만들어 보기

접근 순서

입력 받을 숫자 2개에 대한 DTO를 생성

public class CalculatorNumbers {
    private int num1;
    private int num2;

    // 생성자
    public CalculatorNumbers(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    // get메서드
    public int getNum1() {
        return num1;
    }

    public int getNum2() {
        return num2;
    }
}

합,차,곱에 대한 DTO를 생성 (위에 꺼를 import를 해줘야 함)

package com.group.libraryapp.dto.response;

import com.group.libraryapp.dto.calculator.request.CalculatorNumbers;

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

    public CalculationResponse(CalculatorNumbers numbers) {
        this.add = numbers.getNum1() + numbers.getNum2();
        this.minus = numbers.getNum1() / numbers.getNum2();
        this.multiply = numbers.getNum1() * numbers.getNum2();
    }

    public int getAdd() {
        return add;
    }

    public int getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }
}

시작 시점에 메서드를 만들어 준다

@GetMapping("/calc")
public CalculationResponse CalculatorNumberslist (CalculatorNumbers request) {
    return new CalculationResponse(request);
}

 

문제 2 : 날짜를 입력하면 원하는 값을 가지고 오는 방식

-> 날짜 입력은 String 타입으로 들어감

-> dayofweek 는 요일을 영어로 출력함

문제 접근 순서

입력 받을 날짜의 DTO를 만들어 준다

public class LocalDateRequest {
    private DayOfWeek dayOfTheWeek;

    public String getDayOfWeek() {
        return dayOfTheWeek.toString().substring(0,3);
    }

    public LocalDateRequest(String day) {
        this.dayOfTheWeek = LocalDate.parse(day).getDayOfWeek();
    }
}

시작 시점에 메서드를 만들어 준다

@GetMapping("/day-of-the-week")
    public LocalDateRequest DayCheck(@RequestParam String date) {
        return new LocalDateRequest(date);
    }
}

문제 3 : 입력한 숫자들의 합을 구하시오

접근 순서 :

연속된 숫자를 입력받아야 하기 때문에 배열 형태로 값을 입력받게 만들어준다

public class NumberTotal {
    List<Integer> numbers;

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

    public int totSum() {
        int total = 0;
        for (int num : numbers) {
            total += num;
        }
        return total;
    }


}

시작 지점에 메서드를 만들어 준다

@GetMapping("/listsum")
public int Sumlist(@RequestBody NumberTotal numbers) {
    return numbers.totSum();
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘