인프런 김영한님 [모든 개발자를 위한 HTTP 웹 기본 지식] 강의를 듣고 정리한 내용입니다.
틀린 부분이 있으면 답글 달아 주세요😊😊
1. 요구사항 - 회원 정보 관리 API를 만들어라.
• 회원 목록 조회
• 회원 조회
• 회원 등록
• 회원 수정
• 회원 삭제
2. API URI(Uniform Resource Identifier) 설계
• 회원 목록 조회 /read-member-list
• 회원 조회 /read-member-by-id
• 회원 등록 /create-member
• 회원 수정 /update-member
• 회원 삭제 /delete-member
3. 이것은 좋은 RUI 설계일까? ⭐⭐⭐
4. API URI(Uniform Resource Identifier) 고민
• 리소스의 의미는 뭘까?
- 회원을 등록하고 수정하고 조회하는게 리소스가 아니다!
- 예) 미네랄을 캐라 -> 미네랄이 리소스
- 회원이라는 개념 자체가 바로 리소스다.
• 리소스를 어떻게 식별하는게 좋을까?
- 회원을 등록하고 수정하고 조회하는 것을 모두 배제
- 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 URI에 매핑
5. API URI(Uniform Resource Identifier) 설계
- 리소스 식별, URI 계층 구조 활용
• 회원 목록 조회 /members
• 회원 조회 /members/{id}
• 회원 등록 /members/{id}
• 회원 수정 /members/{id}
• 회원 삭제 /members/{id}
• 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장(member -> members)
-> 그렇다면, 회원 조회/등록/수정/삭제 는 어떻게 구분할까❓
6. 리소스와 행위를 분리
⭐ 가장 중요한 것은 리소스를 식별하는 것
• URI는 리소스만 식별!
• 리소스와 해당 리소스를 대상으로 하는 행위을 분리
- 리소스: 회원
- 행위: 조회, 등록, 삭제, 변경
• 리소스는 명사, 행위는 동사 (미네랄을 캐라)
• 행위(메서드)는 어떻게 구분?
❓ 질문 정리 ❗
Q. members/1 이 아니라 members?id=1 이런식으로 써야하는 거 아닌가?
A. path와 query는 리소스를 식별하기 위해 함께 쓰인다.
query를 써서 members?id=1과 같이 사용할 수도 있지만 관례적으로 리소스를 식별할 때 id(식별자)는 members/1과 같이 path를 사용한다.
path는 주로 계층구조로 된 정보를 포함하고 query는 주로 비계층구조로된 정보를 포함한다.
즉, path는 리소스의 위치를 특정해서 보여줘야 하는 경우 사용하고, query는 리소스를 정렬/필터해서 보여줘야하는 경우 사용한다.
- path → /members/1
- query → ?members?occupation=programmer
[출처] https://www.inflearn.com/questions/517777
'📚 Computer Science > Network' 카테고리의 다른 글
[모든 개발자를 위한 HTTP 웹 기본 지식] 4. HTTP 메서드 - PUT, PATCH, DELETE (0) | 2023.08.11 |
---|---|
[모든 개발자를 위한 HTTP 웹 기본 지식] 4. HTTP 메서드 - GET, POST (0) | 2023.08.11 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 - HTTP 메세지 (0) | 2023.08.11 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 - 비연결성(connectionless) (0) | 2023.08.11 |
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 - Stateful, Stateless (0) | 2023.08.10 |