이 과제는 @GetMapping으로 (/api/v1/calc) 이런 url 요청이 들어오면 덧셈,곱셈,뺄셈을 json으로 응답으로 내보내는 과제이다.
@RestController
public class CalcController {
@GetMapping("/api/v1/calc")
public CalcResponse calculator(@RequestParam int num1,
@RequestParam int num2){
return new CalcResponse(num1,num2);
}
}
return값으로 CalcResponse를 사용했는데
이유는 json으로 응답하기 위해서는 객체를 사용해야 하기 때문이다.
매개변수로는 @RequestParam 이라는 어노테이션을 사용했는데
이것은 url로 num1,num2의 쿼리스트링이 넘어오면 매개변수 값들을 바인딩 해줄수있다. URL 로부터 넘어온 매개변수를 CalcResponse 생성자에 넣어주면 클라이언트쪽에 계산값을 응답해주고
Controller의 역할은 끝이난다.
@RestController
public class DateController {
@GetMapping("/api/v1/day-of-the-week")
public DayResponse dayResponse(@RequestParam LocalDate date){
DayOfWeek dayOfWeek = date.getDayOfWeek();
return new DayResponse(dayOfWeek);
}
}
@Getter
public class DayResponse {
DayOfWeek dayOfTheWeek;
public DayResponse(DayOfWeek dayOfTheWeek) {
this.dayOfTheWeek = dayOfTheWeek;
}
}
매개변수 LocalDate로 무슨 요일인지 받아오고
return값으로 DayResponse생성자에 date에 해당하는 요일을 넣어서
클라이언트에 응답한다
나는 왜 sunday가 나오는지 모르겠다..
@RestController
public class SumController {
@PostMapping("/api/sum")
public int sum(@RequestBody Sum sum){
int sum2 = 0;
List<Integer> list = sum.getResult();
for (Integer list1 : list){
sum2 += list1;
}
return sum2;
}
}
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Sum {
List<Integer> result;
}
이 코드는 post방식으로 숫자들이 body로 들어오면 그 숫자들을
다 합한다음에 클라이언트에 더한값을 응답해주는 코드이다
먼저@RequestBody로 숫자들을 받아오고
sum.getResult()로 숫자 list들을 담은후에
forEach문으로 list에있는 숫자들을 sum2변수에 더한다.
마지막으로 sum2를 return하면 더한값이 클라이언트로 응답하게된다.