인프런 워밍업 클럽 백엔드 - 두 번째 과제
9개월 전
문제 1
두 수를 입력하면, 다음과 같은 결과 나오는 GET
API를 만들어 보자!
path :
/api/v1/calc
이다.쿼리 파라미터 : num1, num2
CalculatorRequest
package com.group.libraryapp.dto.test.request;
public class CalculatorRequest {
private int num1;
private int num2;
public CalculatorRequest(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int getNum1() {
return num1;
}
public int getNum2() {
return num2;
}
}
Calculator
package com.group.libraryapp.domain.test;
public class Calculator {
private int add;
private int minus;
private int multiply;
public Calculator(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;
}
}
문제 2
날짜를 입력하면, 몇 요일인지 알려주는 GET
API를 만들어 보자!
path와 쿼리 파라미터는 임의로 만들어도 상관없다.
DateRequest
package com.group.libraryapp.dto.test.request;
public class DateRequest {
private String date;
public DateRequest(String date) {
this.date = date;
}
public String getDate() {
return date;
}
}
DayOfTheWeek
package com.group.libraryapp.domain.test;
public class DayOfTheWeek {
private String dayOfTheWeek;
public DayOfTheWeek(String date) {
this.dayOfTheWeek = date;
}
public String getDayOfWeek() {
return dayOfTheWeek;
}
}
문제 3
여러 수를 받아 총 합을 반환하는 POST
API를 만들어 보자!
API에서 받는 Body는 다음과 같은 형태이다. (HINT
: 요청을 받는 DTO에서 List
를 갖고 있으면 JSON의 배열을 받을 수 있습니다.)
SumRequest
package com.group.libraryapp.dto.test.request;
import java.util.List;
public class SumRequest {
private List<Integer> numbers;
public List<Integer> getNumbers() {
return numbers;
}
}
Controller
package com.group.libraryapp.controller;
import com.group.libraryapp.domain.test.Calculator;
import com.group.libraryapp.domain.test.DayOfTheWeek;
import com.group.libraryapp.dto.test.request.CalculatorRequest;
import com.group.libraryapp.dto.test.request.DateRequest;
import com.group.libraryapp.dto.test.request.SumRequest;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.time.DayOfWeek;
import java.time.LocalDate;
@RestController
public class TestController {
@GetMapping("/api/v1/calc")
public Calculator calc(CalculatorRequest request) {
int num1 = request.getNum1();
int num2 = request.getNum2();
int add = num1 + num2;
int minus = num1 - num2;
int multiply = num1 * num2;
return new Calculator(add, minus, multiply);
}
@GetMapping("/api/v1/day-of-the-week")
public DayOfTheWeek dayOfTheWeek(DateRequest request) {
DayOfWeek dayOfWeek = LocalDate.parse(request.getDate()).getDayOfWeek();
int week = dayOfWeek.getValue();
String date = "";
switch (week) {
case 1: date = "MON";
break;
case 2: date = "TUE";
break;
case 3: date = "WED";
break;
case 4: date = "THU";
break;
case 5: date = "FRI";
break;
case 6: date = "SAT";
break;
case 7: date = "SUN";
break;
}
return new DayOfTheWeek(date);
}
@PostMapping("/api/v1/sum")
public Integer sum(@RequestBody SumRequest request) {
int sum = 0;
for (int i : request.getNumbers()) {
sum += i;
}
return sum;
}
}
댓글을 작성해보세요.