728x90

1. 두 수를 입력하여, 다음과 같은 결과가 나오는 GET API 만들기

[결과 예시]

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

 

[작성 코드]

public class Inflearn{
    @GetMapping("/api/v1/calc")
    public Calculator calculator(
    @RequestParam("number1") int number1, 
    @RequestParam("number2") int number2) 
    {
        return new Calculator(number1, number2);
    }
}


public class Calculator {
    public int add;
    public int minus;
    public int multiply;

    public Calculator(int number1, int number2) {
        this.add = number1 + number2;
        this.minus = number1 - number2;
        this.multiply = number1 * number2;
    }
}

 

[코드 설명]

  • Get API로 만들어야 하기 때문에 @GetMapping을 사용하였다.
  • calculator 메서드는 number1, number2 두 개의 숫자를 파라미터로 받고 Caculator 객체를 리턴 해준다.
  • Caculator 클래스에서 생성자는 두 수를 받아 덧셈, 뺄셈, 곱셈을 하여 저장한다.
  • Caculator 클래스에서 작업이 끝나면 결과를 반환해준다.

 

[실행 결과]

 

2. 날짜를 입력하면, 무슨 요일인지 알려주는 GET API를 만들기

[결과 예시]

 {
	"dayOfTheWeek": "MON"
 }

 

[작성 코드]

public class Inflearn{
    @GetMapping("/api/v1/day-of-the-week")
    public DayOfTheWeek getDate(@RequestParam("date") String date) {
        return new DayOfTheWeek(date);
    }
}


import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;

public class DayOfTheWeek {
    public String dayOfTheWeek;

    public DayOfTheWeek(String date) {
        String[] dateArr = date.split("-");
        
        LocalDate localDate = LocalDate.of(Integer.parseInt(dateArr[0]), 
        Integer.parseInt(dateArr[1]), Integer.parseInt(dateArr[2]));
        
        DayOfWeek dayOfWeek = localDate.getDayOfWeek();
        
        String day = dayOfWeek.getDisplayName(TextStyle.SHORT, Locale.ENGLISH);
        
        this.dayOfTheWeek = day;
    }

}

 

[코드 설명]

  • GET API로 만들어야 하기 때문에 @GetMapping을 사용하였다.
  • getDate 메서드는 문자열 date를 파라미터로 받고 날짜 객체를 리턴 한다.
  • DayOfTheWeek 클래스에서 생성자는 문자열 형식의 date를 받아 처리를 한다.
    • 문자열 date를 "-" 기준으로 자른다.
    • LocalDate.of() 파라미터에는 년, 월, 일이 순서대로 들어가고 LocalDate 객체를 생성한다.
    • LocalDate 객체인 localDate에서 getDayOfWeek() 메서드를 사용하여 요일을 가져온다.
    • 가져온 요일을 getDisplayName()메서드를 사용하여 dayOfTheWeek 필드에 요일을 할당한다.
  • DayOfTheWeek 클래스에서 작업이 끝나면 dayOfTheWeek 필드에 할당된 값을 리턴한다.

[실행 결과]

 

💡 LocalDate.of()

더보기

LocalDate 클래스에서 제공해주는 LocalDate.of()를 살펴 보았다. 이 메서드는Year-Month-DayOfMonth순서로

파라미더가 들어가고,해당 날짜를 나타내는LocalDate객체를 생성하는 역할을 한다.

 

💡 getDayOfWeek()

더보기

getDayOfWeek()가  어떻게 동작하는지 궁금해서 확인해 보았다.

getDayOfWeek() 메서드는 enum을 반환하고, 이 enum은 요일을 나타내는데 사용한다.
그럼 위 코드에서 enum은 어떤 형식인지 궁금해서 또 들어가봤다.

of(int dayOfWeek) 메서드는 "MONDAY, TUESDAY"등 요일이 적힌 enum 클래스를 리턴 하고 있고,

이 메서드는 ISO-8601 표준에 따라 1부터 7까지의 값을 가지고, 1은 월요일을 나타내고, 7은 일요일을 나타낸다고 한다.

 

3. 여러 수를 받아 총 합을 반환하는 POST API 만들기

[결과 예시]

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

 

[작성 코드]

public class Inflearn{
    @PostMapping("/api/v1/sum")
    public int sum(@RequestBody NumberList numbers) {
        int sum = 0;
        for (Integer num : numbers.numbers) {
            sum += num;
        }

        return sum;
    }
}


import java.util.List;

public class NumberList {
    public List<Integer> numbers;
}

 

[코드 설명]

  • POST API로 만들어야 하기 때문에 @PostMapping을 사용하였다.
  • sum 메서드는 NumberList 객체인 numbers를 받는다.
  • NumberList 객체는 숫자 목록을 저장하기 위한 클래스이다.
    • numbers 필드는 숫자 목록을 저장하는 List<Integer> 타입이다.
  • NumberList 객체에 포함된 숫자 리스트를 반복하여 모든 숫자를 더한 값을 반환한다.

[실행 결과]

 

 

강의 링크 👉 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

728x90

+ Recent posts