{
"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 필드에 할당된 값을 리턴한다.
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 객체에 포함된 숫자 리스트를 반복하여 모든 숫자를 더한 값을 반환한다.