본문 바로가기
스터디/워밍업-클럽

[인프런 워밍업 클럽] 2일차 - GET, POST API 만들기

by 빙수야 팥빙수야 2024. 2. 20.

📌 문제 1

문제 1

👩🏻‍💻 Controller 코드

@RestController
public class CalcController {

    // problem1
    @GetMapping("/api/v1/calc")
    public Calculator calculateNums(CalculatorRequest request) {
        return new Calculator(request.getNumber1(), request.getNumber2());
    }
}

 

👩🏻‍💻 Request DTO 코드

package com.group.libraryapp.dto.homework2.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 getNumber1() {
        return num1;
    }

    public int getNumber2() {
        return num2;
    }
}

 

👩🏻‍💻 Response DTO 코드

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

public class CalculatorResponse {

    private Integer add;
    private Integer minus;
    private Integer multiply;

    public CalculatorResponse(int num1, int num2) {
        this.add = num1 + num2;
        this.minus = num1 - num2;
        this.multiply = num1 * num2;
    }

    public Integer getAdd() {
        return add;
    }

    public Integer getMinus() {
        return minus;
    }

    public Integer getMultiply() {
        return multiply;
    }
}

 

🔍 Postman 결과

 

 

📌 문제 2

문제 2

👩🏻‍💻 Controller 코드

@RestController
public class CalcController {

    // problem2
    @GetMapping("/api/v1/day-of-the-week")
    public DateResponse calculateDay(DateRequest request) {
        String date = request.getDate();
        String[] dateArr = date.split("-");
        int[] dateInt = Stream.of(dateArr).mapToInt(Integer::parseInt).toArray();

        String dayOfWeek = LocalDate.of(dateInt[0], dateInt[1], dateInt[2])
                .getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.US);
        dayOfWeek = dayOfWeek.toUpperCase();
        return new DateResponse(dayOfWeek);
    }
}

 

👩🏻‍💻 Request DTO 코드

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

public class DateRequest {

    private final String date;

    public DateRequest(String date) {
        this.date = date;
    }

    public String getDate() {
        return date;
    }
}

 

👩🏻‍💻 Response DTO 코드

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

public class DateResponse {

    private String dayOfTheWeek;

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

    public String getDayOfTheWeek() {
        return dayOfTheWeek;
    }
}

 

🔍 Postman 결과

 

📌 문제 3

문제 3

 

👩🏻‍💻 Controller 코드

@RestController
public class CalcController {

    // problem3
    @PostMapping("/api/v1/sum-all-numbers")
    public Integer sumAllNumbers(@RequestBody NumsRequest request) {
        return request.getNumbers().stream().mapToInt(Integer::intValue).sum();
    }
}

 

👩🏻‍💻 Request DTO 코드

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

import java.util.List;

public class NumsRequest {

    private List<Integer> numbers;

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

 

🔍 Postman 결과

 

 

 

강의 링크

https://inf.run/XKQg