728x90
반응형
1. (6강) POST API 개발하고 테스트하기
- POST에서 Body로 데이터를 어떻게 받을까?
- JSON - key, value 쌍으로 이루어진 데이터
- @RequestBody
- HTTP Body로 들어오는 JSON을 자바 객체인 CalculatorMultiplyRequest로 바꿔주는 역할을 한다.
- JSON의 key와 DTO의 필드명은 일치해야한다.
@PostMapping("/multiply")
public int multiplyTwoNumbers(@RequestBody CalculatorMultiplyRequest request) {
return request.getNumber1() * request.getNumber2();
}
2. (7강) 유서 생성 API 개발
- 도서관리 애플리케이션의 요구사항
- 사용자
- 도서관의 사용자를 등록할 수 있다.(이름 필수, 나이 선택)
- 도서관 사용자의 목록을 볼 수 있다.
- 도서관 사용자 이름을 업데이트 할 수 있다.
- 도서관 사용자를 삭제할 수 있다.
- 책
- 도서관에 책을 등록 및 삭제할 수 있다.
- 사용자가 책을 빌릴 수 있다.
- 대출중인 책은 대출이 불가하다
- 사용자는 책을 반납할 수 있다.
- 사용자
- 도서관 사용자 등록 API 명세
- HTTP Method: POST
- HTTP Path: /user
- HTTP Body(JSON)
- name: String (null불가) / age: Integer
- 결과반환 필요없음.
@PostMapping("/user")
public void saveUser(@RequestBody UserCreateRequest request) {
users.add(new User(request.getName(), request.getAge()));
}
- DTO: UserCreateRequest - (String) name과 (Integer) age 정보를 담은 DTO 생성
- List<User> 에 User를 저장하는데 DB를 사용하지는 않는다. 유저정보가 메모리에 저장되어 실행될 때마다 User정보가 사라지는 문제가 발생한다. 따라서 DB를 활용해야하는데 이는 다음 Section에서 다룰 것으로 예상된다.
- 도서관 사용자 조회 API 명세
- HTTP Method: GET
- HTTP Path: /user
- 쿼리: 없음
- 결과반환: Id(Long) / name(String) / age(Integer)
- Controller에서 getter가 있는 객체를 반환하면 JSON형식으로 ResponseBody가 반환된다.
- Id: 유저별로 겹치지 않치지 않는 유일한 번호, 기본키(Primary Key)에 해당한다.
@GetMapping("/user")
public List<UserResponse> getUsers() {
List<UserResponse> responses = new ArrayList<>();
for (int id = 0; id < users.size(); id++) {
responses.add(new UserResponse(id + 1, users.get(id)));
}
return responses;
}
- DTO: UserResponse - (long) id, (String) name, (Integer) age를 담은 DTO 생성
- id의 경우 기본키에 해당하는데 지금은 DB를 사용하지 않고 리스트에 임시적으로 저장해놓고 있기 때문에 인덱스를 기준으로 id를 설정해놓았다.
3. (9강) Section1 정리
- 스프링 프로젝트 시작하는 방법과 실행방법
- 네트워크, IP, 도메인, 포트, HTTP 요청과 응답구조, 클라이언트-서버구조, API 기초 지식
- SpringBoot를 이용해 GET API, POST API 만드는방법 학습
728x90
반응형
'스터디 > 인프런' 카테고리의 다른 글
[인프런 워밍업 스터디 클럽 0기- BE] 4일차 강의 내용 정리(Section2) (0) | 2024.02.22 |
---|---|
[인프런 워밍업 스터디 클럽 0기- BE] 2일차 과제 (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 3일차 강의 내용 정리(Section2) (0) | 2024.02.20 |
[인프런 워밍업 스터디 클럽 0기- BE] 1일차 과제 (0) | 2024.02.19 |
[인프런 워밍업 스터디 클럽 0기- BE] 1일차 강의 내용 정리 (0) | 2024.02.19 |