[HTTP API]
리소스란? 회원이라는 개념 그 자체
리소스 식별 중요!! 등록,수정, 삭제는 배제. => 회원 리소스를 URI에 매핑
요구사항- 회원 정보 관리 API URI 설계
회원 목록 조회 /read-member-list -> 회원 목록 조회 /members
회원 조회 /read-member-by-id -> 회원 조회 /members/{id}
회원 등록 /create-member -> 회원 등록 /members/{id}
회원 수정 /update-member -> 회원 수정 /members/{id}
회원 삭제 /delete-member -> 회원 삭제 /members/{id}
URI는 리소스만 식별!
리소스와 해당 리소스를 대상으로 하는 행위을 분리(회원과 조회,등록,삭제,변경을 분리)
->행위(메서드)는 어떻게 구분하는가? HTTP메서드가 해줘서 따라서 리소스만 식별하면 됨
[HTTP 메서드] 클라이언트가 서버에 요청할때 기대하는 행동
1. GET: 리소스 조회
필요한 파라미터를 쿼리를 통해서 전달
클라이언트가 /100달라고 요청하면 서버에 get메서드가 도착해서 내부에 db조회해서 json형식으로 data 만들어서 응답메세지를 만들어서 보내
2. POST: 요청 데이터 처리, 주로 등록에 사용
클라이언트에서 서버에 메세지 바디를 통해 요청보낼 때 data줄테니까 요청 정보를 처리해줘~하고 전달. 주로 신규 리소스 등록, 프로세스 처리에 사용
1) 새 리소스를 생성,등록
2) 요청 데이터 처리
* POST의 요청 데이터 처리?
리소스 URI에(ex. /members에) POST요청이 오면 요청을 어떻게 처리할 지 리소스마다 스스로 정리함.
3) 다른 메서드로 처리하기 어려운 경우
3. PUT: 리소스를 '완전히'대체(없으면 생성, 있으면 대체), 해당 리소스가 없으면 생성
클라이언트가 리소스를 식별!!(/members/100이라는 구체적인 리소스를 알고 있고(100에 지정할거야!) URI를 지정)
<->POST와의 차이점
4. PATCH: 리소스 부분 변경
5. DELETE: 리소스 삭제
[HTTP메서드의 속성]
1. 안전 : 호출해도 리소스를 변경하지 않는다.(여러번 호출했을때 변경이 일어나는 것은 안전하지 않음)get같은거 안전해
2. 멱등 : 한번 호출하던 백번 호출하던 결과는 모두 똑같.
똑같은 요청을 2번해도 괜찮아서 자동 복구 메커니즘을 사용 가능. 외부 요인으로 중간에 리소스가 변경된는건 고려x.
POST: 멱등이 아니다! 두 번 호출하면 같은 결제가 중복해서 발생!
자동복구메커니즘에 사용.
3. 캐시가능 : 응답 결과를 캐시해서 사용.
'Spring 강의 > network' 카테고리의 다른 글
[network] - (6) HTTP 상태코드 (0) | 2022.04.07 |
---|---|
[network] - (5) HTTP메서드 활용 (0) | 2022.04.05 |
[network] - (3) HTTP 기본 (0) | 2022.04.04 |
[network] - (2) URI와 웹 브라우저 요청 흐름 (0) | 2022.04.04 |
[network] (1) - 인터넷 네트워크 (0) | 2022.04.04 |