Search

2일차) GET API , POST API

주제

두 수를 입력하면 값을 주는 GET API
날짜를 입력하면, 몇 요일인지 알려주는 GET API 여러 수를 받아 총 합을 계산해 주는 POST API 만들기

 주요 내용

키워드

GET API
POST API
HTTP Method

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

요구사항

path: /api/v1/calc
쿼리 파라미터 : num1, num2
{ "add" : 덧셈결과, "minus": 뺄셈결과, "multiply": 곱셈결과 }
Java
복사

예시

GET /api/v1/calc?num1=10&num2=5
{ "add" : 15, "minus": 5, "multiply": 50
Java
복사
답안
@GetMapping("/api/v1/calc") public CalculatorRequest calculator(@RequestParam int num1, @RequestParam int num2) { CalculatorRequest request = new CalculatorRequest(); request.setAdd(num1 + num2); request.setMinus(num1 - num2); request.setMultiply(num1 * num2); return request; }
Java
복사
@Getter @Setter public class CalculatorRequest { private int add; private int minus; private int multiply; }
Java
복사

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

요구사항

path와 쿼리 파라미터는 임의로 만들어도 상관없다.

예시

GET /api/v1/day-of-the-week?date=2023-01-01
"dayOfTheWeek": "MON" }
Java
복사

추가팁

자바 8 이후 날짜를 다루는 주요 객체인 LocalDate 에 대해서 찾아보세요! 클래스를 열어 주요 메소드를 살펴보거나, 직접 자바 문서를 읽는게 어렵다면, <LocalDate 사용법>을 검색해 익혀보셔도 좋습니다
답안
@GetMapping("/api/v1/dayOfTheWeek") public Map<String, Object> dayOfTheWeek(@RequestParam String date) { LocalDate localDate = LocalDate.parse(date); String getDate = localDate.getDayOfWeek().toString(); return Map.of("dayOfTheWeek", getDate.substring(0, 3)); }
Java
복사

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

요구사항

API에서 받는 Body는 다음과 같은 형태이다. ( HINT : 요청을 받는 DTO 에서 List 를 갖고 있으면 JSON 의 배열을 받을 수 있습니다)
"numbers": [1, 2, 3, 4, 51 }
Java
복사
반환
15
Java
복사

주의

반환 결과는 JSON이 아닙니다! 함수에서 String 혹은 Integer를 반환하면, API 결과가 JSON으로 나가지 않고, 단순한 값으로 나가게 됩니다. POST MAN과 같은 API 테스트 툴을 이용해 한 번 확인해보세요~
답안
@Getter @NoArgsConstructor public class SumNumbersRequest { private List<Integer> numbers; public SumNumbersRequest(List<Integer> numbers) { this.numbers = numbers; } }
Java
복사
@PostMapping("/api/v1/sum") public int sumNumbers(@RequestBody SumNumbersRequest request) { List<Integer> numList = request.getNumbers(); return numList.stream() .mapToInt(Integer::intValue).sum(); }
Java
복사

참고