-
인프런 워밍업 클럽/ BE 4일차 과제 : API 추가인프런 워밍업 클럽 2024. 5. 7. 20:06
이번 과제는 2일차 과제에 이어서 추가적인 API를 만들어 보는 것이다.
문제 1
우선 Body로 넘어오는 Json 데이터를 받아주기 위해 DTO를 만들었다.
Request Body를 사용해서 만들어준 DTO로 데이터를 받는다.
sql문을 만들고 JdbcTemplate객체로 sql문 안에 ? 부분을 채워준다.
결과값
5번째 사과가 추가 됐다!
📌Price에 int 대신 long을 사용한 이유는?
int 타입은 4바이트로 -2,147,483,648 ~ 2,147,483,647 범위의 값을 표현할 수 있지만,
long타입은 8바이트로 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 표현할 수 있다.
즉, 나중에 큰 값을 받을 것을 대비해서 long타입을 사용했다고 볼 수 있다.
문제2
받아야하는 값이 id 한개지만, RequestBody에 Json데이터로 넘겨주고 있기 때문에 DTO를 만들어 줬다.
FruitUpdateRequestDTO Controller @RequestBody를 써서 방금 만든 DTO로 id값을 받아준다.
SQL문을 만들어서 JdbcTemplate를 사용해서 쿼리를 날려준다.
결과값
포스트맨으로 id값 5를 날려서 5번 데이터의 판매상태가 수정됐다.
문제3
Controller 쿼리스트링으로 name값을 받기 위해 컨트롤러에서 @RequestParam으로 값을 받아준다!
State 1은 판매처리가 된 것으로 설정했고 0은 판매처리가 되지 않은 것으로 설정했다.
때문에 SQL문을 두 번 날려서 해당 항목(name)이 팔린 총 금액과 팔리지 않은 총 금액을 구했다.
Json데이터로 넘겨주기 위해 FruitResponseDTO 객체를 만들어서 반환해준다!
결과값
현재 DB(예제로 추가한 5번 데이터는 삭제했다.)
'인프런 워밍업 클럽' 카테고리의 다른 글
인프런 워밍업 클럽/ BE 6일차 과제 : 스프링 컨테이너의 사용 (0) 2024.05.13 인프런 워밍업 클럽/ BE 5일차 과제 : 클린 코드 (0) 2024.05.09 인프런 워밍업 클럽/ BE 3일차 과제 : 익명 클래스와 람다식 (0) 2024.05.01 인프런 워밍업 클럽/ BE 2일차 과제 : API (0) 2024.04.30 인프런 워밍업 클럽/ BE 1일차 과제 : 어노테이션 (0) 2024.04.29