HTTP API 개발

김찬희·2024년 5월 1일
0

HTTP

목록 보기
3/3

1.

@RestController
public class PlusMinusMultiply {

    @GetMapping("/api/v1/calc")
    public PlusMinusMultiplyResult addTwoNumber(@RequestParam int num1, int num2){
        return new PlusMinusMultiplyResult(num1,num2);
    }
package com.group.libraryapp.dto.practice;

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

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

    public int getAdd() {
        return add;
    }

    public int getMinus() {
        return minus;
    }

    public int getMultiply() {
        return multiply;
    }
}

2.

@RestController
public class GetDateOfWeek {
@GetMapping("/api/v1/day-of-the-week")
    public DateResponseDTO getDate(@RequestParam String date){
        DateResponseDTO dateResponseDTO = new DateResponseDTO(date);
        return dateResponseDTO;
    }
}
package com.group.libraryapp.dto.practice;

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

public class DateResponseDTO {

    private String dayOfTheWeek;

    public DateResponseDTO(String date){
        LocalDate localDate = LocalDate.parse(date);
        DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
        this.dayOfTheWeek = dayOfWeek.getDisplayName(TextStyle.SHORT,
                Locale.KOREA).toUpperCase();
    }

    public String getDayOfTheWeek() {
        return dayOfTheWeek;
    }
}

3.

@RestController
public class AddNums {
@PostMapping("/api/v1/addNums")
    public int getSum(@RequestBody CalculatorSumRequest rq){
        return rq.getNumbers()
                .stream()
                .mapToInt(Integer::intValue)
                .sum();
    }
package com.group.libraryapp.dto.practice;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class CalculatorSumRequest {

    private ArrayList<Integer> numbers;

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

3번 API 개발시 사용한 .stream()은 자바 collection 문법을 적용해서 개발해 봤다.
1,2 번 API 개발시에 원래는 입력받는 부분을 @RequestParam이 아닌 객체로 만들고 하는 방법도 있는데 문제에서는 입력값이 주어져 있어서 그냥 Param으로 받아서 해결했다.
만약, 여러 api가 같은 DTO를 사용하게 된다면 객체로 받을 수 있게 DTO를 추가 생성해도 좋을듯하다.

0개의 댓글