[인프런 워밍업 클럽 0기] BE 2일차 과제
9개월 전
문제 1
두 수를 입력하면, 다음과 같은 결과가 나오는 GET
API를 만들어 보자!
path :
/api/v1/calc
이다.쿼리 파라미터 : num1, num2
{
"add": 덧셈결과,
"minus": 뺄셈결과,
"multiply": 곱셈결과
}
dto/calculator/request/CalculatorRequest.java
public class CalculatorRequest {
private final int num1;
private final int num2;
public CalculatorRequest(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int getNum1() {
return num1;
}
public int getNum2() {
return num2;
}
}
dto/calculator/response/CalculatorResponse.java
public class CalculatorResponse {
private final int add;
private final int minus;
private final 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 getMultiply() {
return multiply;
}
public int getMinus() {
return minus;
}
}
controller/calculator/CalculatorController.java
@RestController
public class CalculatorController {
@GetMapping("/api/v1/calc") // GET /api/v1/calc
public CalculatorResponse calculateTwoNumbers(CalculatorRequest request) {
int add = request.getNum1() + request.getNum2();
int minus = request.getNum1() - request.getNum2();
int multiply = request.getNum1() * request.getNum2();
return new CalculatorResponse(add, minus, multiply);
}
}
실행결과
문제 2
날짜를 입력하면, 몇 요일인지 알려주는 GET
API를 만들어 보자!
path와 쿼리 파라미터는 임의로 만들어도 상관없다.
dto/study/DayResponse.java
public class DayResponse {
private final String dayOfWeek;
public DayResponse(String dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getDayOfWeek() {
return dayOfWeek;
}
}
controller/study/DayController.java
@RestController
public class DayController {
@GetMapping("/day") // GET /day
public DayResponse dayOfWeek(@RequestParam String date) {
LocalDate localDate = LocalDate.parse(date);
String dayOfWeek = localDate.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.US);
return new DayResponse(dayOfWeek);
}
}
실행결과
문제 3
여러 수를 받아 총 합을 반환하는 POST
API를 만들어 보자!
API에서 받는 Body는 다음과 같은 형태이다. (HINT
: 요청을 받는 DTO에서 List
를 갖고 있으면 JSON의 배열을 받을 수 있습니다)
{
"numbers": [1, 2, 3, 4, 5]
}
반환 결과
15
dto/calculator/request/MultiAddRequest.java
public class MultiAddRequest {
private List<Integer> numbers;
public MultiAddRequest(List<Integer> numbers) {
this.numbers = numbers;
}
public MultiAddRequest() {
}
public List<Integer> getNumbers() {
return numbers;
}
}
dto/calculator/response/MultiAddResponse.java
public class MultiAddResponse {
private final Integer sum;
public MultiAddResponse(Integer sum) {
this.sum = sum;
}
public Integer getSum() {
return sum;
}
}
controller/calculator/CalculatorController.java
@RestController
public class MultiAddController {
@PostMapping("/multi")
public MultiAddResponse MultiAdd(@RequestBody MultiAddRequest request) {
int sum = request.getNumbers().stream()
.mapToInt(i -> i)
.sum();
return new MultiAddResponse(sum);
}
}
실행 결과
댓글을 작성해보세요.