
[작성 코드]
[controller]
@GetMapping("/api/v1/calc")
public CalculatorResponse calculatorResponse (@RequestParam int num1, @RequestParam int num2){
int add = num1 + num2;
int minus = num1 - num2;
int multiply = num1 * num2;
return new CalculatorResponse(add, minus, multiply);
}
[dto]
public class CalculatorResponse {
private int add;
private int minus;
private 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 getMinus() {
return minus;
}
public int getMultiply() {
return multiply;
}
}

[dto]
package com.group.libraryapp.dto.homework.response;
public class DateResponse {
private String dayOfTheWeek;
public DateResponse(String dayOfTheWeek) {
this.dayOfTheWeek = dayOfTheWeek;
}
public String getDayOfTheWeek() {
return dayOfTheWeek;
}
}
[controller]
//2과제 - 2번 문제
@GetMapping("/api/v1/day-of-the-week")
public DateResponse getDateResponse(@RequestParam String date){
//날짜 클래스 처리
LocalDate localDate = LocalDate.parse(date);
//Localdate에서 요일을 가져옴
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
//앞에 3글자만 추출
String dayName = dayOfWeek.name().substring(0,3);
return new DateResponse(dayName);
}

첫번째 방법
[dto]
public class CalculatorRequest {
private List<Integer> numbers;
/*
기본 생성자
JSON을 읽을때 먼저 빈객체를 만든 후 setter로 값을 넣음
객체를 생성하기 위해 기본 생성자를 사용함
*/
public CalculatorRequest(){
}
public CalculatorRequest(List<Integer> numbers) {
this.numbers = numbers;
}
public List<Integer> getNumbers() {
return numbers;
}
public void setNumbers(List<Integer> numbers) {
this.numbers = numbers;
}
}
[controller]
//2과제 - 3번 문제
@PostMapping("/api/v1/sum")
public int sumCalculator(@RequestBody CalculatorRequest request){
int sum = 0;
for (Integer number : request.getNumbers()){
sum += number;
}
return sum;
}
stream이란?
컬렉션(List, Set 등)의 데이터를 함수형 스타일로 처리할 수 있는 API.
//stram 방식
@PostMapping("/api/v1/sum")
public int sumCalculator(@RequestBody CalculatorRequest request){
return request.getNumbers()
.stream()//리스트를 stream으로 변환
.mapToInt(Integer::intValue)//int로 변환
.sum();
}