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()
![](https://blog.kakaocdn.net/dn/bPauE5/btsE1DThFGb/6mIoMTX7nbabn8p3subND1/img.png)
LocalDate 클래스에서 제공해주는 LocalDate.of()를 살펴 보았다. 이 메서드는Year-Month-DayOfMonth순서로
파라미더가 들어가고,해당 날짜를 나타내는LocalDate객체를 생성하는 역할을 한다.
💡 getDayOfWeek()
![](https://blog.kakaocdn.net/dn/rMxSr/btsE9LIKmx7/9v1ENRgjmwXCskEkzpck21/img.png)
![](https://blog.kakaocdn.net/dn/ZiYfF/btsE9487apM/YnFZ0kVUP60eSuEAVEXitK/img.png)
![](https://blog.kakaocdn.net/dn/cOP2X3/btsE97x0lKH/Y7z8e7HCnRaKpDAwl7FJ0k/img.png)
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 객체에 포함된 숫자 리스트를 반복하여 모든 숫자를 더한 값을 반환한다.
[실행 결과]
강의 링크 👉 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
'개발 > 인프런 워밍업 스터디' 카테고리의 다른 글
[인프런 워밍업 클럽 0기 BE] 5일차 - 클린 코드(Clean Code) (0) | 2024.02.23 |
---|---|
[인프런 워밍업 클럽 0기 BE] 4일차 - 추가적인 API 만들기 (0) | 2024.02.22 |
[인프런 워밍업 클럽 0기 BE] 3일차 - 람다(Lambda) (0) | 2024.02.21 |
[인프런 워밍업 클럽 0기 BE] 1일차 - 어노테이션(Annotation) (0) | 2024.02.19 |
[인프런 워밍업 클럽 0기 BE] 0일차 - 시작!! (0) | 2024.02.19 |