[인프런 워밍업 클럽 1기 BE] 과제2. GET API와 POST API 만들기

none_null·2024년 5월 1일
1

Java

목록 보기
4/10
post-thumbnail

요청 DTO랑 응답 DTO를 받아 controller에 api/v1/calc로 API 요청하기

CalculatorRequest

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

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;
    }
}

CalculatorResponse

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

public class CalculatorResponse {
    private int add;
    private int minus;
    private int multiply;

    public CalculatorResponse(CalculatorRequest num){
        this.add = num.getNum1() + num.getNum2();
        this.minus = num.getNum1() - num.getNum2();
        this.multiply = num.getNum1() * num.getNum2();
    }

    public int getAdd() {
        return add;
    }

    public int getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }
}

CalculatorController

@GetMapping("/api/v1/calc") // 2. GET /add
    public CalculatorResponse calculator(CalculatorRequest request){
        return new CalculatorResponse(request);
    }

CalculatorController

@GetMapping("/api/v1/day-of-the-week")
    public DayResponse dayOfWeek(@RequestParam("date") String date){
        LocalDate localDate = LocalDate.parse(date);
        return new DayResponse(localDate);
    }

DayResponse

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

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;

public class DayResponse {
    private DayOfWeek dayOfWeek;

    public DayResponse(LocalDate localDate) {
        this.dayOfWeek = localDate.getDayOfWeek();
    }

    public DayOfWeek getDayOfWeek() {
        return dayOfWeek;
    }
}

CalculatorController

@PostMapping("/api/v1/arr")
    public int sum(@RequestBody ArrayRequest request) {
        int res = 0;
        for(int i = 0; i < request.getNumbers().size(); i++) {
            res += request.getNumbers().get(i);
        }

        return res;
    }

ArrayRequest

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

import java.util.ArrayList;
import java.util.List;

public class ArrayRequest {
    List<Integer> numbers;

    public ArrayRequest() {

    }

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

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

profile
초보개발자

0개의 댓글

관련 채용 정보