02. GET API와 POST API

Eunjin·2025년 12월 10일

Spring Boot

목록 보기
2/4

[작성 코드]

[controller]
@GetMapping("/api/v1/calc")
    public CalculatorResponse calculatorResponse (@RequestParam int num1, @RequestParam int num2){
        int add = num1 + num2;
        int minus = num1 - num2;
        int multiply = num1 * num2;

        return new CalculatorResponse(add, minus, multiply);
    }
    
[dto]
public class CalculatorResponse {
    private int add;
    private int minus;
    private 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 getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }
}

[dto]
package com.group.libraryapp.dto.homework.response;

public class DateResponse {
    private String dayOfTheWeek;

    public DateResponse(String dayOfTheWeek) {
        this.dayOfTheWeek = dayOfTheWeek;
    }

    public String getDayOfTheWeek() {
        return dayOfTheWeek;
    }
}

[controller]
//2과제 - 2번 문제
    @GetMapping("/api/v1/day-of-the-week")
    public DateResponse getDateResponse(@RequestParam String date){
        //날짜 클래스 처리
        LocalDate localDate = LocalDate.parse(date);
        //Localdate에서 요일을 가져옴
        DayOfWeek dayOfWeek = localDate.getDayOfWeek();
        //앞에 3글자만 추출
        String dayName = dayOfWeek.name().substring(0,3);

        return new DateResponse(dayName);
    }

첫번째 방법
[dto]
public class CalculatorRequest {
    private List<Integer> numbers;

    /*
    기본 생성자
    JSON을 읽을때 먼저 빈객체를 만든 후 setter로 값을 넣음
    객체를 생성하기 위해 기본 생성자를 사용함
     */
    public CalculatorRequest(){
    }

    public CalculatorRequest(List<Integer> numbers) {
        this.numbers = numbers;
    }

    public List<Integer> getNumbers() {
        return numbers;
    }

    public void setNumbers(List<Integer> numbers) {
        this.numbers = numbers;
    }
}

[controller]
//2과제 - 3번 문제
    @PostMapping("/api/v1/sum")
    public int sumCalculator(@RequestBody CalculatorRequest request){
        int sum = 0;
        for (Integer number : request.getNumbers()){
            sum += number;
        }

        return sum;
    }

stream사용

stream이란?
컬렉션(List, Set 등)의 데이터를 함수형 스타일로 처리할 수 있는 API.

  • for문을 안쓰고 데이터를 처리하는 방법
  • 데이터를 흐름(stream)으로 보고, 그 흐름에서 연산을 수행
//stram 방식
    @PostMapping("/api/v1/sum")
    public int sumCalculator(@RequestBody CalculatorRequest request){
        return request.getNumbers()
                .stream()//리스트를 stream으로 변환
                .mapToInt(Integer::intValue)//int로 변환
                .sum();
    }

0개의 댓글