[인프런 워밍업클럽 BE] 2일차 : GET POST API 만들어보기

진욱 홍·2024년 2월 19일
0
post-thumbnail

문제1

두 수를 입력하면, 다음과 같은 결과가 나오는 GET API를 만들어보자!

  • path: /api/v1/calc 이다.
  • 쿼리 파라미터: num1,num2 이다.

Controller(문제 1,2,3공통)

package com.group.libraryapp.controller.homework;

import com.group.libraryapp.dto.calculator.request.*;
import com.group.libraryapp.dto.calculator.response.MinMax;
import com.group.libraryapp.dto.calculator.response.TodayDate;
import com.group.libraryapp.dto.calculator.response.calculateDto;
import org.springframework.web.bind.annotation.*;

@RestController
public class HomeworkFirstController {

    //문제 1
    @GetMapping("/api/v1/calc")
    public calculateDto Calculatelist(NumList request){
        return new calculateDto(request);
    }

    //문제 2
    @GetMapping("/api/v1/day-of-the-week")
    public TodayDate Datereturn(@RequestParam String date){
        return new TodayDate(date);
    }

    //문제 3
    @PostMapping("/api/v1/numbers")
    public int SumList(@RequestBody NumbersSumDto sumDto){
        return sumDto.getSum();
    }

}

Request Dto

package com.group.libraryapp.dto.calculator.request;

public class NumList {
    private final int num1;
    private final int num2;

    public int getNum2() {
        return num2;
    }

    public int getNum1() {
        return num1;
    }

    public NumList(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }
}

Response Dto

package com.group.libraryapp.dto.calculator.response;

import com.group.libraryapp.dto.calculator.request.NumList;

public class calculateDto {
    public calculateDto(NumList cal) {
        this.add = cal.getNum1()+ cal.getNum2();
        this.minus = cal.getNum1()-cal.getNum2();
        this.multiply=cal.getNum1()*cal.getNum2();
    }

    public int getAdd() {
        return add;
    }

    public int getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }

    private final int add;
    private final int minus;
    private final int multiply;


}

결과

문제 2

날짜를 입력하면, 몇 요일인지 알려주는 GET API를 만들어 보자!

Response Dto

package com.group.libraryapp.dto.calculator.response;

import java.time.DayOfWeek;
import java.time.LocalDate;

public class TodayDate {
    private final DayOfWeek dayOfTheWeek;

    public String getDayOfTheWeek() {
        return dayOfTheWeek.toString().substring(0,3);
    }

    public TodayDate(String day) {
        this.dayOfTheWeek = LocalDate.parse(day).getDayOfWeek();
    }


}

결과

문제 3

여러 수를 받아 총 합을 반환하는 POST API를 만들어 보자!

Request Dto

package com.group.libraryapp.dto.calculator.request;

import java.util.List;

public class NumbersSumDto {

    List<Integer> numbers;

 	//@RequestBody 어노테이션은 요청 본문의 데이터를 지정된 Java 객체로 매핑할 때
    //해당 객체의 getter 메서드를 사용하여 값을 설정한다!!
    public List<Integer> getNumbers() {
        return numbers;
    }

    public int getSum(){
        int total=0;
        for (int num:numbers){
            total+=num;
        }
        return total;
    }

}

requestbody 객체의 getSum() 메서드를 이용하여 리스트의 합을 반환하였음

결과

profile
Geospatial Information Engineering · Computer Science&Engineering

0개의 댓글