워밍업 클럽 - 백엔드 2일차 과제
9개월 전
문제 1 - add, minus, plus API
쿼리로 num1과 num2의 값을 받은 후 합, 차, 곱을 구해서 Response 객체로 반환했다.
@GetMapping("/api/v1/calc")
public CalculatorCalcResponse calcTwoNumbers(CalculatorCalcRequest request) {
CalculatorCalcResponse response = new CalculatorCalcResponse();
response.setAdd(request.getNum1() + request.getNum2());
response.setMinus(request.getNum1() - request.getNum2());
response.setMultiply(request.getNum1() * request.getNum2());
return response;
}
결과의 Response 객체는 다음과 같이 구현했다.
package com.warmup.libraryapp.dto.calculator.response;
public class CalculatorCalcResponse {
private int add;
private int minus;
private int multiply;
public int getAdd() {
return add;
}
public void setAdd(int add) {
this.add = add;
}
public int getMinus() {
return minus;
}
public void setMinus(int minus) {
this.minus = minus;
}
public int getMultiply() {
return multiply;
}
public void setMultiply(int multiply) {
this.multiply = multiply;
}
}
결과는 다음과 같다.
문제 2 - 날짜 to 요일 API
컨트롤러에서 LocalDate를 이용하여 요일을 반환하도록 구현하였다.
@RestController
public class DateController {
@GetMapping("/api/v1/day-of-the-week")
public DayOfWeekResponse getDayOfWeek(@RequestParam String date) {
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ISO_DATE);
String dayOfWeek = localDate.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.US).toUpperCase();
DayOfWeekResponse response = new DayOfWeekResponse();
response.setDayOfTheWeek(dayOfWeek);
return response;
}
}
결과의 Response 객체는 다음과 같이 구현했다.
public class DayOfWeekResponse {
private String dayOfTheWeek;
public String getDayOfTheWeek() {
return dayOfTheWeek;
}
public void setDayOfTheWeek(String dayOfTheWeek) {
this.dayOfTheWeek = dayOfTheWeek;
}
}
결과는 다음과 같다.
문제 3 - Sum API
구현 방법
POST http://localhost:8080/api/v1/sums 로 json 오브젝트에 담긴 numbers 배열을 바디로 가져오도록 DTO를 만든다.
package com.warmup.libraryapp.dto.calculator.request;
import java.util.List;
public class CalculatorSumRequest {
private List<Integer> numbers;
public List<Integer> getNumbers() {
return numbers;
}
public void setNumbers(List<Integer> numbers) {
this.numbers = numbers;
}
}
그리고 Stream API를 이용해서 sum을 반환하도록 했다.
@PostMapping("/api/v1/sums")
public int sumNumbers(@RequestBody CalculatorSumRequest request) {
return request.getNumbers().stream().mapToInt(Integer::intValue).sum();
}
결과는 다음과 같다.
댓글을 작성해보세요.