[인프런 워밍업 클럽] 2일차 GET POST API 만들어 보자
9개월 전
문제 1 : 두 수를 입력 하면 다음과 같은 결과가 나오는 API 만들어 보기
접근 순서
입력 받을 숫자 2개에 대한 DTO를 생성
public class CalculatorNumbers {
private int num1;
private int num2;
// 생성자
public CalculatorNumbers(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
// get메서드
public int getNum1() {
return num1;
}
public int getNum2() {
return num2;
}
}
합,차,곱에 대한 DTO를 생성 (위에 꺼를 import를 해줘야 함)
package com.group.libraryapp.dto.response;
import com.group.libraryapp.dto.calculator.request.CalculatorNumbers;
public class CalculationResponse {
private int add;
private int minus;
private int multiply;
public CalculationResponse(CalculatorNumbers numbers) {
this.add = numbers.getNum1() + numbers.getNum2();
this.minus = numbers.getNum1() / numbers.getNum2();
this.multiply = numbers.getNum1() * numbers.getNum2();
}
public int getAdd() {
return add;
}
public int getMinus() {
return minus;
}
public int getMultiply() {
return multiply;
}
}
시작 시점에 메서드를 만들어 준다
@GetMapping("/calc")
public CalculationResponse CalculatorNumberslist (CalculatorNumbers request) {
return new CalculationResponse(request);
}
문제 2 : 날짜를 입력하면 원하는 값을 가지고 오는 방식
-> 날짜 입력은 String 타입으로 들어감
-> dayofweek 는 요일을 영어로 출력함
문제 접근 순서
입력 받을 날짜의 DTO를 만들어 준다
public class LocalDateRequest {
private DayOfWeek dayOfTheWeek;
public String getDayOfWeek() {
return dayOfTheWeek.toString().substring(0,3);
}
public LocalDateRequest(String day) {
this.dayOfTheWeek = LocalDate.parse(day).getDayOfWeek();
}
}
시작 시점에 메서드를 만들어 준다
@GetMapping("/day-of-the-week")
public LocalDateRequest DayCheck(@RequestParam String date) {
return new LocalDateRequest(date);
}
}
문제 3 : 입력한 숫자들의 합을 구하시오
접근 순서 :
연속된 숫자를 입력받아야 하기 때문에 배열 형태로 값을 입력받게 만들어준다
public class NumberTotal {
List<Integer> numbers;
public void setNumber(List<Integer> numbers) {
this.numbers = number;
}
public int totSum() {
int total = 0;
for (int num : numbers) {
total += num;
}
return total;
}
}
시작 지점에 메서드를 만들어 준다
@GetMapping("/listsum")
public int Sumlist(@RequestBody NumberTotal numbers) {
return numbers.totSum();
}
댓글을 작성해보세요.